激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

<ul id="buwfs"><strike id="buwfs"><strong id="buwfs"></strong></strike></ul>
    <output id="buwfs"></output>
  • <dfn id="buwfs"><source id="buwfs"></source></dfn>
      <dfn id="buwfs"><td id="buwfs"></td></dfn>
      <div id="buwfs"><small id="buwfs"></small></div>
      <dfn id="buwfs"><source id="buwfs"></source></dfn>
      1. <dfn id="buwfs"><td id="buwfs"></td></dfn>
        始創(chuàng)于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業(yè)
        • 60秒人工響應
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償
        全部產品
        您的位置: 網站首頁 > 幫助中心>文章內容

        HBase Java客戶端編程

        發(fā)布時間:  2012/9/5 16:53:36

        本文以Hbase-0.92.0為例,介紹如何在Windows系統(tǒng),Eclipse IDE集成環(huán)境下,使用Java語言,進行HBase客戶端編程,包含建立表、刪除表、插入記錄、刪除記錄、各種方式下的查詢操作等。

        1. 準備工作

        1、下載后安裝jdk包;

        2、下載eclipse,解壓到本地;

        3、下載HBase包,解壓安裝包到本地(這里使用的是 Hbase-0.92.0)。-
         


        2. 搭建開發(fā)環(huán)境

        1、運行Eclipse,創(chuàng)建一個新的Java工程“HBaseClient”,右鍵項目根目錄,選擇 “Properties”->“Java Build Path”->“Library”->“Add External JARs”,將HBase解壓后根目錄下的hbase-0.92.0.jar、hbase-0.92.0-tests.jar和lib子目錄下所有jar 包添加到本工程的Classpath下。

        2、按照步驟1中的操作,將自己所連接的HBase的配置文件hbase-site.xml添加到本工程的Classpath中,如下所示為配置文件的一個示例:

        <configuration>   
        <property>   
        <name>hbase.rootdir</name>   
        <value>hdfs://Hadoop-1:9000/hbase</value>   
        </property>   
        <property>   
        <name>hbase.cluster.distributed</name>   
        <value>true</value>   
        </property>   
        <property>   
        <name>hbase.zookeeper.quorum</name>   
        <value>Hadoop-1,hadoop-2,hadoop-3,hadoop-4</value>   
        </property>   
        <property>   
        <name>zookeeper.session.timeout</name>   
        <value>60000</value>   
        </property>   
        <property>   
        <name>hbase.master</name>   
        <value>Hadoop-1:60000</value>   
        </property>   
        <property>   
        <name>hbase.zookeeper.property.clientPort</name>   
        <value>21818</value>   
        </property>   
        </configuration> 
        3、下面可以在Eclipse環(huán)境下進行HBase編程了。

        3. HBase基本操作代碼示例

        import java.io.IOException;      
        import java.util.ArrayList;      
        import java.util.List;      
               
        import org.apache.Hadoop.conf.Configuration;      
        import org.apache.Hadoop.hbase.HBaseConfiguration;      
        import org.apache.Hadoop.hbase.HColumnDescriptor;      
        import org.apache.Hadoop.hbase.HTableDescriptor;      
        import org.apache.Hadoop.hbase.KeyValue;      
        import org.apache.Hadoop.hbase.MasterNotRunningException;      
        import org.apache.Hadoop.hbase.ZooKeeperConnectionException;      
        import org.apache.Hadoop.hbase.client.Delete;      
        import org.apache.Hadoop.hbase.client.Get;      
        import org.apache.Hadoop.hbase.client.HBaseAdmin;      
        import org.apache.Hadoop.hbase.client.HTable;      
        import org.apache.Hadoop.hbase.client.Result;      
        import org.apache.Hadoop.hbase.client.ResultScanner;      
        import org.apache.Hadoop.hbase.client.Scan;      
        import org.apache.Hadoop.hbase.client.Put;      
        import org.apache.Hadoop.hbase.util.Bytes;      
               
        public class HBaseTest {        
                  
            private static Configuration conf =null;   
             /**  
              * 初始化配置  
             */  
             static {   
                 conf = HBaseConfiguration.create();   
             }   
                
            /**    
             * 創(chuàng)建一張表    
             */     
            public static void creatTable(String tableName, String[] familys) throws Exception {      
                HBaseAdmin admin = new HBaseAdmin(conf);      
                if (admin.tableExists(tableName)) {      
                    System.out.println("table already exists!");      
                } else {      
                    HTableDescriptor tableDesc = new HTableDescriptor(tableName);      
                    for(int i=0; i<familys.length; i++){      
                        tableDesc.addFamily(new HColumnDescriptor(familys[i]));      
                    }      
                    admin.createTable(tableDesc);      
                    System.out.println("create table " + tableName + " ok.");      
                }       
            }      
                  
            /**    
             * 刪除表    
             */     
            public static void deleteTable(String tableName) throws Exception {      
               try {      
                   HBaseAdmin admin = new HBaseAdmin(conf);      
                   admin.disableTable(tableName);      
                   admin.deleteTable(tableName);      
                   System.out.println("delete table " + tableName + " ok.");      
               } catch (MasterNotRunningException e) {      
                   e.printStackTrace();      
               } catch (ZooKeeperConnectionException e) {      
                   e.printStackTrace();      
               }      
            }      
                   
            /**    
             * 插入一行記錄    
             */     
            public static void addRecord (String tableName, String rowKey, String family, String qualifier, String value)      
                    throws Exception{      
                try {      
                    HTable table = new HTable(conf, tableName);      
                    Put put = new Put(Bytes.toBytes(rowKey));      
                    put.add(Bytes.toBytes(family),Bytes.toBytes(qualifier),Bytes.toBytes(value));      
                    table.put(put);      
                    System.out.println("insert recored " + rowKey + " to table " + tableName +" ok.");      
                } catch (IOException e) {      
                    e.printStackTrace();      
                }      
            }      
               
            /**    
             * 刪除一行記錄    
             */     
            public static void delRecord (String tableName, String rowKey) throws IOException{      
                HTable table = new HTable(conf, tableName);      
                List list = new ArrayList();      
                Delete del = new Delete(rowKey.getBytes());      
                list.add(del);      
                table.delete(list);      
                System.out.println("del recored " + rowKey + " ok.");      
            }      
                   
            /**    
             * 查找一行記錄    
             */     
            public static void getOneRecord (String tableName, String rowKey) throws IOException{      
                HTable table = new HTable(conf, tableName);      
                Get get = new Get(rowKey.getBytes());      
                Result rs = table.get(get);      
                for(KeyValue kv : rs.raw()){      
                    System.out.print(new String(kv.getRow()) + " " );      
                    System.out.print(new String(kv.getFamily()) + ":" );      
                    System.out.print(new String(kv.getQualifier()) + " " );      
                    System.out.print(kv.getTimestamp() + " " );      
                    System.out.println(new String(kv.getValue()));      
                }      
            }      
                   
            /**    
             * 顯示所有數(shù)據    
             */     
            public static void getAllRecord (String tableName) {      
                try{      
                     HTable table = new HTable(conf, tableName);      
                     Scan s = new Scan();      
                     ResultScanner ss = table.getScanner(s);      
                     for(Result r:ss){      
                         for(KeyValue kv : r.raw()){      
                            System.out.print(new String(kv.getRow()) + " ");      
                            System.out.print(new String(kv.getFamily()) + ":");      
                            System.out.print(new String(kv.getQualifier()) + " ");      
                            System.out.print(kv.getTimestamp() + " ");      
                            System.out.println(new String(kv.getValue()));      
                         }      
                     }      
                } catch (IOException e){      
                    e.printStackTrace();      
                }      
            }      
                  
            public static void  main (String [] agrs) {      
                try {      
                    String tablename = "scores";      
                    String[] familys = {"grade", "course"};      
                    HBaseTest.creatTable(tablename, familys);      
                           
                    //add record zkb      
                    HBaseTest.addRecord(tablename,"zkb","grade","","5");      
                    HBaseTest.addRecord(tablename,"zkb","course","","90");      
                    HBaseTest.addRecord(tablename,"zkb","course","math","97");      
                    HBaseTest.addRecord(tablename,"zkb","course","art","87");      
                    //add record  baoniu      
                    HBaseTest.addRecord(tablename,"baoniu","grade","","4");      
                    HBaseTest.addRecord(tablename,"baoniu","course","math","89");      
                           
                    System.out.println("===========get one record========");      
                    HBaseTest.getOneRecord(tablename, "zkb");      
                           
                    System.out.println("===========show all record========");      
                    HBaseTest.getAllRecord(tablename);      
                           
                    System.out.println("===========del one record========");      
                    HBaseTest.delRecord(tablename, "baoniu");      
                    HBaseTest.getAllRecord(tablename);      
                           
                    System.out.println("===========show all record========");      
                    HBaseTest.getAllRecord(tablename);      
                } catch (Exception e) {      
                    e.printStackTrace();      
                }      
            }      
        }   


        本文出自:億恩科技【mszdt.com】

        服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

      2. 您可能在找
      3. 億恩北京公司:
      4. 經營性ICP/ISP證:京B2-20150015
      5. 億恩鄭州公司:
      6. 經營性ICP/ISP/IDC證:豫B1.B2-20060070
      7. 億恩南昌公司:
      8. 經營性ICP/ISP證:贛B2-20080012
      9. 服務器/云主機 24小時售后服務電話:0371-60135900
      10. 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
      11. 專注服務器托管17年
        掃掃關注-微信公眾號
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務熱線