package com.lhh.hbaseapi.rowkeyhbase;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.filter.CompareFilter;
import org.apache.hadoop.hbase.filter.RegexStringComparator;
import org.apache.hadoop.hbase.filter.RowFilter;
/**
* @program: lhh
* @description:
* @author: 华仔
* @create: 2021-05-19 15:32
*/
//根据rowkey模糊查询
public class RowkeyHbase {
public static void main(String[] args) {
roekeyget();
}
public static void roekeyget(){
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "主机ip"); //配置zookeeper的主机
conf.set("hbase.zookeeper.property.clientPort", "2181"); //配置zookeeper的端口
conf.set("hbase.master", "主机ip**加粗样式**:16000"); //hbase IPC 端口
Connection connection = null;
Admin admin = null;
Table table = null;
try {
//连接HBASE
connection = ConnectionFactory.createConnection(conf);
admin = connection.getAdmin();//创建DML定义
if (admin.tableExists(TableName.valueOf("testcustomer1"))) { //如果表存在就添加数据
table = connection.getTable(TableName.valueOf("testcustomer1"));
//创建scan对象
Scan scan = new Scan();
//指定模糊查询的rowke使用正则表达式
RowFilter rowFilter = new RowFilter(CompareFilter.CompareOp.EQUAL, new RegexStringComparator(".*1001.*"));
//添加到scan
scan.setFilter(rowFilter);
//指定rowkey将scan添加到table中
ResultScanner scanner = table.getScanner(scan);
//获取结果
Result next = scanner.next();
while (next!=null){
byte[] value = next.getValue("assetsInfo".getBytes(), "id".getBytes());
byte[] value1 = next.getValue("personalInfo".getBytes(), "id".getBytes());
byte[] value2 = next.getValue("recordInfo".getBytes(), "id".getBytes());
System.out.println("值--"+new String(value));
System.out.println("值1--"+new String(value1));
System.out.println("值2--"+new String(value2));
next=scanner.next();
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
table.close();
admin.close();
connection.close();
System.out.println("关闭资源");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
12-29
254
09-26
1699
04-29