• 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 + "	" + 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 + "	" + 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 }
  • 相关阅读:
    [LeetCode] 55. Jump Game 跳跃游戏
    [LeetCode] 163. Missing Ranges 缺失区间
    [LeetCode] 228. Summary Ranges 总结区间
    获取当时时间和日期
    响应式布局设备分界点
    html5shiv.js分析-读源码之javascript系列
    建站模板开源代码
    js 调试问题
    transform使用参考指南
    浏览器版本过低
  • 原文地址:https://www.cnblogs.com/ahu-lichang/p/6680166.html
Copyright © 2020-2023  润新知