• HBASE常用JAVA API


    根据rowkey进行get

    1
    Configuration conf = HBaseConfiguration.create(); //创建配置实例 2 HTable table = new HTable(conf,"EVENT_LOG_YZ"); //初始化一个新的表引用 3 Get get = new Get(Bytes.toBytes("nz-NE02967280231-1")); //使用一个指定的行键(即rowkey)构建一个get实例 4 get.addColumn(Bytes.toBytes("f1"), Bytes.toBytes("YZYT_msg_type")); //向get实例中添加一个列,f1是列族,YZYT_msg_type是列名 5 Result result = table.get(get); //从hbase中获取指定行的列数据 6 byte [] val = result.getValue(Bytes.toBytes("f1"), Bytes.toBytes("YZYT_msg_type")); //从返回的结果中获取对应列的数据 7 System.out.println(Bytes.toString(val)); //将数据转化为字符串打印输出
    根据rowkey的前缀进行get,也相当于scan,较慢

    1
    Scan scan = new Scan(); 2 scan.setFilter(new PrefixFilter(Bytes.toBytes(express_nbr))); 3 ResultScanner resultScanner = null; 4 HTableInterface eventLogTable = null; 5 List<String> phone_list = new ArrayList<String>(); 6 try { 7 eventLogTable = hbaseHelper.getConnection().getTable("CDPOST_YZYT"); 8 resultScanner = eventLogTable.getScanner(scan); 9 Iterator<Result> it = resultScanner.iterator(); 10 while (it.hasNext()) { 11 Result result = it.next(); 12 String[] phone_num = Bytes.toString(result.getRow()).split("-"); 13 if (!phone_list.contains(phone_num[phone_num.length - 1])) { 14 phone_list.add(phone_num[phone_num.length - 1]); 15 } 16 } 17 } catch (IOException e) { 18 logger.error("消息处理异常", e); 19 } finally { 20 if (resultScanner != null) { 21 resultScanner.close(); 22 } 23 if (eventLogTable != null) { 24 try { 25 eventLogTable.close(); 26 } catch (IOException e) { 27 } 28 } 29 }
    hbase的put操作

    1
    Configuration conf_hbase = HBaseConfiguration.create(); //创建所需的配置 2 HTable table_express = new HTable(conf_hbase , "EXPRESS_YZYT"); //实例化一个新的客户端 3 String cloumn1 = "TelephoneNbr"; 4 String cloumn2 = "ExpressNbr"; 5 String cloumn3 = "CardNum"; 6 String cloumn4 = "ExpressType"; 7 8 Put put_express = new Put(ExpressNum.getBytes()); //指定一行来创建一个put 9 put_express.add("f1".getBytes(), cloumn1.getBytes(),TelephoneNum.getBytes()); //向put中添加一个column1(TelephoneNbr)的列,列簇为f1 10 put_express.add("f1".getBytes(), cloumn3.getBytes(), CardNo.getBytes()); 11 put_express.add("f1".getBytes(), cloumn4.getBytes(),ExpressType.getBytes()); 12 13 table_express.put(put_express); //将这一行存储到hbase表中
     //根据时间戳进行扫描过滤
    1
    Configuration conf = HBaseConfiguration.create(); 2 HTable table = new HTable(conf,"EVENT_LOG_YZ"); 3 Scan scan = new Scan(); 4 scan.setTimeRange(NumberUtils.toLong("1466646234237"), NumberUtils.toLong("1466646529902")); 5 6 ResultScanner resultScanner = null; 7 8 try { 9 10 resultScanner = table.getScanner(scan); 11 Iterator<Result> it = resultScanner.iterator(); 12 while (it.hasNext()) { 13 Result result = it.next(); 14 String phone_num = Bytes.toString(result.getRow()); 15 System.out.println(phone_num); 16 } 17 } catch (IOException e) { 18 19 } finally { 20 if (resultScanner != null) { 21 resultScanner.close(); 22 } 23 if (table != null) { 24 try { 25 table.close(); 26 } catch (IOException e) { 27 } 28 } 29 }
  • 相关阅读:
    STM32+ESP8266+AIR202基本控制篇-301-服务器单向SSL认证-MQTT服务器配置SSL单向认证(.Windows系统)
    STM32+ESP8266+AIR202基本控制篇-213-功能测试-微信小程序扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
    17-STM32+ESP8266+AIR202基本控制篇-完成功能2-微信小程序使用APUConfig配网绑定ESP8266,并通过MQTT和ESP8266实现远程通信控制
    Python 元类
    硬核!15张图解Redis为什么这么快
    Protobuf 中 any 的妙用
    Grpc性能压测方法:用ghz进行压测
    压测工具Locuse的使用
    Locust 多机器分布式测试
    kubespray部署kubernetes高可用集群
  • 原文地址:https://www.cnblogs.com/riyueyuzhuzhu/p/5586423.html
Copyright © 2020-2023  润新知