//创hbase数据表
public static void createtable() throws IOException {
//1 连接数据库
//2 对数据库进行操作
//3 关闭连接
Configuration conf=new Configuration();
// Configuration configuration = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
Connection connection = ConnectionFactory.createConnection(conf);
//实例admin管理员 创建 删除hbase表需要使用admin
Admin admin = connection.getAdmin();
//实例表名和表结构
//表名
TableName tableName=TableName.valueOf("myuser");
//设置表结构
HTableDescriptor hTableDescriptor=new HTableDescriptor(tableName);
//设置列族
HColumnDescriptor hColumnDescriptor1=new HColumnDescriptor("f1");
HColumnDescriptor hColumnDescriptor2=new HColumnDescriptor("f2");
//建立表与列族之间的关系
hTableDescriptor.addFamily(hColumnDescriptor1);
hTableDescriptor.addFamily(hColumnDescriptor2);
admin.createTable(hTableDescriptor);
admin.close();
//关闭连接
connection.close();
}
//向表内插入数据
public static void putdata() throws IOException {
//连接结数据库,找到需要添加的表
Configuration conf=new Configuration();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
Connection connection = ConnectionFactory.createConnection(conf);
Table myuser = connection.getTable(TableName.valueOf("myuser"));
//示例数据
Put put=new Put("0001".getBytes());
put.addColumn("f1".getBytes(),"name".getBytes(),"zhangsan".getBytes());
put.addColumn("f1".getBytes(),"id".getBytes(),"001".getBytes());
put.addColumn("f1".getBytes(),"age".getBytes(),"18".getBytes());
//插入数据
myuser.put(put);
//关闭连接
connection.close();
}
//向表内插入数据
public static void putdatas() throws IOException {
//连接结数据库,找到需要添加的表
Configuration conf=new Configuration();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
Connection connection = ConnectionFactory.createConnection(conf);
Table myuser = connection.getTable(TableName.valueOf("myuser"));
//示例数据
//创建put对象,并指定rowkey
Put put = new Put("0002".getBytes());
put.addColumn("f1".getBytes(),"id".getBytes(), Bytes.toBytes(1));
put.addColumn("f1".getBytes(),"name".getBytes(),Bytes.toBytes("曹操"));
put.addColumn("f1".getBytes(),"age".getBytes(),Bytes.toBytes(30));
put.addColumn("f2".getBytes(),"sex".getBytes(),Bytes.toBytes("1"));
put.addColumn("f2".getBytes(),"address".getBytes(),Bytes.toBytes("沛国谯县"));
put.addColumn("f2".getBytes(),"phone".getBytes(),Bytes.toBytes("16888888888"));
put.addColumn("f2".getBytes(),"say".getBytes(),Bytes.toBytes("helloworld"));
Put put2 = new Put("0003".getBytes());
put2.addColumn("f1".getBytes(),"id".getBytes(),Bytes.toBytes(2));
put2.addColumn("f1".getBytes(),"name".getBytes(),Bytes.toBytes("刘备"));
put2.addColumn("f1".getBytes(),"age".getBytes(),Bytes.toBytes(32));
put2.addColumn("f2".getBytes(),"sex".getBytes(),Bytes.toBytes("1"));
put2.addColumn("f2".getBytes(),"address".getBytes(),Bytes.toBytes("幽州涿郡涿县"));
put2.addColumn("f2".getBytes(),"phone".getBytes(),Bytes.toBytes("17888888888"));
put2.addColumn("f2".getBytes(),"say".getBytes(),Bytes.toBytes("talk is cheap , show me the code"));
Put put3 = new Put("0004".getBytes());
put3.addColumn("f1".getBytes(),"id".getBytes(),Bytes.toBytes(3));
put3.addColumn("f1".getBytes(),"name".getBytes(),Bytes.toBytes("孙权"));
put3.addColumn("f1".getBytes(),"age".getBytes(),Bytes.toBytes(35));
put3.addColumn("f2".getBytes(),"sex".getBytes(),Bytes.toBytes("1"));
put3.addColumn("f2".getBytes(),"address".getBytes(),Bytes.toBytes("下邳"));
put3.addColumn("f2".getBytes(),"phone".getBytes(),Bytes.toBytes("12888888888"));
put3.addColumn("f2".getBytes(),"say".getBytes(),Bytes.toBytes("what are you 弄啥嘞!"));
Put put4 = new Put("0005".getBytes());
put4.addColumn("f1".getBytes(),"id".getBytes(),Bytes.toBytes(4));
put4.addColumn("f1".getBytes(),"name".getBytes(),Bytes.toBytes("诸葛亮"));
put4.addColumn("f1".getBytes(),"age".getBytes(),Bytes.toBytes(28));
put4.addColumn("f2".getBytes(),"sex".getBytes(),Bytes.toBytes("1"));
put4.addColumn("f2".getBytes(),"address".getBytes(),Bytes.toBytes("四川隆中"));
put4.addColumn("f2".getBytes(),"phone".getBytes(),Bytes.toBytes("14888888888"));
put4.addColumn("f2".getBytes(),"say".getBytes(),Bytes.toBytes("出师表你背了嘛"));
Put put5 = new Put("0005".getBytes());
put5.addColumn("f1".getBytes(),"id".getBytes(),Bytes.toBytes(5));
put5.addColumn("f1".getBytes(),"name".getBytes(),Bytes.toBytes("司马懿"));
put5.addColumn("f1".getBytes(),"age".getBytes(),Bytes.toBytes(27));
put5.addColumn("f2".getBytes(),"sex".getBytes(),Bytes.toBytes("1"));
put5.addColumn("f2".getBytes(),"address".getBytes(),Bytes.toBytes("哪里人有待考究"));
put5.addColumn("f2".getBytes(),"phone".getBytes(),Bytes.toBytes("15888888888"));
put5.addColumn("f2".getBytes(),"say".getBytes(),Bytes.toBytes("跟诸葛亮死掐"));
Put put6 = new Put("0006".getBytes());
put6.addColumn("f1".getBytes(),"id".getBytes(),Bytes.toBytes(5));
put6.addColumn("f1".getBytes(),"name".getBytes(),Bytes.toBytes("xiaobubu—吕布"));
put6.addColumn("f1".getBytes(),"age".getBytes(),Bytes.toBytes(28));
put6.addColumn("f2".getBytes(),"sex".getBytes(),Bytes.toBytes("1"));
put6.addColumn("f2".getBytes(),"address".getBytes(),Bytes.toBytes("内蒙人"));
put6.addColumn("f2".getBytes(),"phone".getBytes(),Bytes.toBytes("15788888888"));
put6.addColumn("f2".getBytes(),"say".getBytes(),Bytes.toBytes("貂蝉去哪了"));
List<Put> datas=new ArrayList<>();
datas.add(put);
datas.add(put2);
datas.add(put3);
datas.add(put4);
datas.add(put5);
datas.add(put6);
//插入数据
myuser.put(datas);
//关闭连接
connection.close();
}
//获取某一行数据
public static void getdata() throws IOException {
//连接数据库
Configuration conf=new Configuration();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
Connection connection = ConnectionFactory.createConnection(conf);
//获取报表
Table myuser = connection.getTable(TableName.valueOf("myuser"));
//设置需要读取的数据(rowkey)
Get get=new Get("0004".getBytes());
//查询某一个列族的数据
//get.addFamily("f1".getBytes());
//查询指定列族下的特定列,查询
// get.addColumn("f1".getBytes(),"name".getBytes());
//读取数据 一个result,就是一行数据
Result result = myuser.get(get);
String rowkey = Bytes.toString(result.getRow());
String name = Bytes.toString(result.getValue("f1".getBytes(), "name".getBytes()));
System.out.println(rowkey+ " "+name);
/* //遍历数据
Cell[] cells = result.rawCells();
for (Cell cell : cells) {
if (Bytes.toString(CellUtil.cloneQualifier(cell)).equals("id") || Bytes.toString(CellUtil.cloneQualifier(cell)).equals("age")){
System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)));
System.out.println(Bytes.toString(CellUtil.cloneQualifier(cell)));
System.out.println(Bytes.toInt(CellUtil.cloneValue(cell)));
}else{
System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)));
System.out.println(Bytes.toString(CellUtil.cloneQualifier(cell)));
System.out.println(Bytes.toString(CellUtil.cloneValue(cell)));
}
}*/
connection.close();
//关闭连接
}
//全表扫描
public static void scandata() throws IOException {
//连接数据库
Configuration conf=new Configuration();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
Connection connection = ConnectionFactory.createConnection(conf);
//获取报表
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Scan scan =new Scan();
//设置区间扫描
scan.setStartRow("0002".getBytes());
scan.setStopRow("0005".getBytes());
ResultScanner scanner = myuser.getScanner(scan);
for (Result result : scanner) {
String rowkey = Bytes.toString(result.getRow());
String name = Bytes.toString(result.getValue("f1".getBytes(), "name".getBytes()));
System.out.println(rowkey+ " "+name);
}
//关闭连接
connection.close();
}
//查询rowkey小于0005的数据
public static void rowKeyFilter() throws IOException {
//连接数据库
Configuration conf=new Configuration();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
Connection connection = ConnectionFactory.createConnection(conf);
//获取报表
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Scan scan =new Scan();
//设置区间扫描
RowFilter rowFilter=new RowFilter(GREATER_OR_EQUAL,new BinaryComparator("0005".getBytes()));
scan.setFilter(rowFilter);
ResultScanner scanner = myuser.getScanner(scan);
for (Result result : scanner) {
String rowkey = Bytes.toString(result.getRow());
String name = Bytes.toString(result.getValue("f1".getBytes(), "name".getBytes()));
System.out.println(rowkey+ " "+name);
}
//关闭连接
connection.close();
}
//列族过滤器
public static void familyFilter() throws IOException {
//连接数据库
Configuration conf=new Configuration();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
Connection connection = ConnectionFactory.createConnection(conf);
//获取报表
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Scan scan =new Scan();
//设置区间扫描
//RowFilter rowFilter=new RowFilter(GREATER_OR_EQUAL,new BinaryComparator("0005".getBytes()));
//列族的过滤器
FamilyFilter familyFilter=new FamilyFilter(EQUAL,new BinaryComparator("f2".getBytes()));
scan.setFilter(familyFilter);
ResultScanner scanner = myuser.getScanner(scan);
for (Result result : scanner) {
String rowkey = Bytes.toString(result.getRow());
String name = Bytes.toString(result.getValue("f1".getBytes(), "name".getBytes()));
System.out.println(rowkey+ " "+name);
}
//关闭连接
connection.close();
}
//列名过滤器
public static void qualifierFilter() throws IOException {
//连接数据库
Configuration conf=new Configuration();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
Connection connection = ConnectionFactory.createConnection(conf);
//获取报表
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Scan scan =new Scan();
//设置区间扫描
//RowFilter rowFilter=new RowFilter(GREATER_OR_EQUAL,new BinaryComparator("0005".getBytes()));
//列族的过滤器
//FamilyFilter familyFilter=new FamilyFilter(EQUAL,new BinaryComparator("f2".getBytes()));
//列名的过滤器
QualifierFilter qualifierFilter=new QualifierFilter(EQUAL,new SubstringComparator("name"));
scan.setFilter(qualifierFilter);
ResultScanner scanner = myuser.getScanner(scan);
for (Result result : scanner) {
String rowkey = Bytes.toString(result.getRow());
String name = Bytes.toString(result.getValue("f1".getBytes(), "name".getBytes()));
System.out.println(rowkey+ " "+name);
}
//关闭连接
connection.close();
}
//列值过滤器
public static void valueFilter() throws IOException {
//连接数据库
Configuration conf=new Configuration();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
Connection connection = ConnectionFactory.createConnection(conf);
//获取报表
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Scan scan =new Scan();
ValueFilter valueFilter=new ValueFilter(EQUAL,new SubstringComparator("8"));
scan.setFilter(valueFilter);
ResultScanner scanner = myuser.getScanner(scan);
for (Result result : scanner) {
String rowkey = Bytes.toString(result.getRow());
String name = Bytes.toString(result.getValue("f2".getBytes(), "phone".getBytes()));
System.out.println(rowkey+ " "+name);
}
//关闭连接
connection.close();
}
//单列过滤器
public static void singleColumnFilter() throws IOException {
//连接数据库
Configuration conf=new Configuration();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
Connection connection = ConnectionFactory.createConnection(conf);
//获取报表
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Scan scan =new Scan();
//SingleColumnValueFilter singleColumnValueFilter=new SingleColumnValueFilter("f1".getBytes(),"name".getBytes(),NOT_EQUAL,"刘备".getBytes());
PrefixFilter prefixFilter =new PrefixFilter("000".getBytes());
scan.setFilter(prefixFilter);
ResultScanner scanner = myuser.getScanner(scan);
for (Result result : scanner) {
String rowkey = Bytes.toString(result.getRow());
String name = Bytes.toString(result.getValue("f1".getBytes(), "name".getBytes()));
System.out.println(rowkey+ " "+name);
}
//关闭连接
connection.close();
}
//通过rowkey删除数据
public static void deletedatabyrowkey() throws IOException {
//连接数据库
Configuration conf=new Configuration();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
Connection connection = ConnectionFactory.createConnection(conf);
//获取报表
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Delete delete=new Delete("0001".getBytes());
myuser.delete(delete);
//关闭连接
connection.close();
}
//删除数据表
public static void deletetable() throws IOException {
//连接数据库
Configuration conf=new Configuration();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
Connection connection = ConnectionFactory.createConnection(conf);
Admin admin = connection.getAdmin();
admin.disableTable(TableName.valueOf("myuser"));
admin.deleteTable(TableName.valueOf("myuser"));
//关闭连接
connection.close();
}
//程序的入口
public static void main(String[] args) throws IOException{
createtable();
//putdata();
putdatas();
//getdata();
//scandata();
//rowKeyFilter();
//familyFilter();
//qualifierFilter();
//valueFilter();
//singleColumnFilter();
// deletedatabyrowkey();
// deletetable();
}
}