HBase的JavaAPI操作

 1 package hbase;
 2 
 3 import org.apache.hadoop.conf.Configuration;
 4 import org.apache.hadoop.hbase.HBaseConfiguration;
 5 import org.apache.hadoop.hbase.HColumnDescriptor;
 6 import org.apache.hadoop.hbase.HTableDescriptor;
 7 import org.apache.hadoop.hbase.client.Get;
 8 import org.apache.hadoop.hbase.client.HBaseAdmin;
 9 import org.apache.hadoop.hbase.client.HTable;
10 import org.apache.hadoop.hbase.client.Put;
11 import org.apache.hadoop.hbase.client.Result;
12 import org.apache.hadoop.hbase.client.ResultScanner;
13 import org.apache.hadoop.hbase.client.Scan;
14 
15 /**
16  * 要先将HBase相关jar包添加进去!!!
17  * 
18  * 创建表、删除表 (使用HBaseAdmin)
19  * 
20  * 插入记录、查询一条记录、遍历所有记录 (使用HTable)
21  * 
22  * @author ahu_lichang
23  * 
24  */
25 public class HBaseApp {
26 
27     private static final String TABLE_NAME = "table1";
28     private static final String FAMILY_NAME = "family1";
29     private static final String ROW_KEY = "rowkey1";
30 
31     public static void main(String[] args) throws Exception {
32         Configuration conf = HBaseConfiguration.create();
33         /*
34          * hbase操作必备
35          */
36         conf.set("hbase.rootdir", "hdfs://hadoop0:9000/hbase");
37         // 使用eclipse时必须添加这个,否则无法定位
38         conf.set("hbase.zookeeper.quorum", "hadoop0");
39         /*
40          * 创建表
41          */
42         HBaseAdmin hBaseAdmin = new HBaseAdmin(conf);
43         /*
44          * if (!hBaseAdmin.tableExists(TABLE_NAME)) { HTableDescriptor
45          * hTableDescriptor = new HTableDescriptor(TABLE_NAME);
46          * HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(
47          * FAMILY_NAME); hTableDescriptor.addFamily(hColumnDescriptor);
48          * hBaseAdmin.createTable(hTableDescriptor); }
49          */
50 
51         /*
52          * 添加一条记录
53          */
54         HTable hTable = new HTable(conf, TABLE_NAME);
55         /*
56          * Put put = new Put(ROW_KEY.getBytes());
57          * put.add(FAMILY_NAME.getBytes(), "age".getBytes(), "25".getBytes());
58          * hTable.put(put);
59          */
60 
61         /*
62          * 查询一条记录
63          */
64 
65         /*
66          * Get get = new Get(ROW_KEY.getBytes()); Result result =
67          * hTable.get(get); byte[] value = result
68          * .getValue(FAMILY_NAME.getBytes(), "age".getBytes()); //
69          * keyvalues={rowkey1/family1:age/1491571143625/Put/vlen=2/ts=0} 25
70          * System.out.println(result + "\t" + new String(value));
71          */
72 
73         /*
74          * 遍历所有记录
75          */
76         Scan scan = new Scan();
77         ResultScanner resultScanner = hTable.getScanner(scan);
78         for (Result result : resultScanner) {
79             byte[] value = result.getValue(FAMILY_NAME.getBytes(),
80                     "age".getBytes());
81             System.out.println(result + "\t" + new String(value));
82         }
83 
84         hTable.close();
85         /*
86          * 删除表
87          */
88         /*
89          * hBaseAdmin.disableTable(TABLE_NAME);
90          * hBaseAdmin.deleteTable(TABLE_NAME);
91          */
92     }
93 
94 }

 

posted @ 2017-04-07 21:49  ahu-lichang  阅读(546)  评论(0编辑  收藏  举报