1、在HBase中创建一张表
@Test
public void createTable() throws IOException {
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.property.clientPort", "2181");
conf.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");
Connection connection = ConnectionFactory.createConnection(conf);
Admin admin = connection.getAdmin();
TableName myuser = TableName.valueOf("myuser");
HTableDescriptor hTableDescriptor = new HTableDescriptor(myuser);
HColumnDescriptor cf1 = new HColumnDescriptor("cf1");
HColumnDescriptor cf2 = new HColumnDescriptor("cf2");
hTableDescriptor.addFamily(cf1);
hTableDescriptor.addFamily(cf2);
admin.createTable(hTableDescriptor);
admin.close();
connection.close();
}
2、向HBase的一张表中插入一条数据
@Test
public void insertData() throws IOException {
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.property.clientPort", "2181");
conf.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");
Connection connection = ConnectionFactory.createConnection(conf);
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Put put = new Put(Bytes.toBytes("rk001"));
put.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("name"), Bytes.toBytes("zhangsan"));
myuser.put(put);
connection.close();
}
3、初始化一批数据到HBase的一张表中
@Test
public void insertBatchData() throws IOException {
Configuration configuration = new Configuration();
configuration.set("hbase.zookeeper.property.clientPort", "2181");
configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");
Connection connection = ConnectionFactory.createConnection(configuration);
Table myuser = connection.getTable(TableName.valueOf("myuser"));
List<Put> putList = new ArrayList<>();
Put put1 = new Put(Bytes.toBytes("rk001"));
put1.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("age"), Bytes.toBytes(20));
put1.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("sex"), Bytes.toBytes("男"));
Put put2 = new Put(Bytes.toBytes("rk002"));
put2.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("id"), Bytes.toBytes("2"));
put2.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("name"), Bytes.toBytes("lisi"));
put2.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("sex"), Bytes.toBytes("女"));
put2.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("age"), Bytes.toBytes(30));
putList.add(put1);
putList.add(put2);
myuser.put(putList);
connection.close();
}
4、指定rowkey获取信息
4.1、通过rowkey进行查询获取所有列的所有值
@Test
public void searchByRowkey() throws IOException {
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.property.clientPort", "2181");
conf.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");
Connection connection = ConnectionFactory.createConnection(conf);
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Get get = new Get(Bytes.toBytes("rk001"));
Result result = myuser.get(get);
Cell[] cells = result.rawCells();
for (Cell cell : cells) {
System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)));
System.out.println(Bytes.toString(CellUtil.cloneQualifier(cell)));
System.out.println(Bytes.toString(CellUtil.cloneRow(cell)));
System.out.println(Bytes.toString(CellUtil.cloneValue(cell)));
}
myuser.close();
connection.close();
}
4.2、按照rowkey获取指定列族下指定列的值
@Test
public void searchByRowkeyGetColumnVal() throws IOException {
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.property.clientPort", "2181");
conf.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");
Connection connection = ConnectionFactory.createConnection(conf);
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Get get = new Get(Bytes.toBytes("rk002"));
get.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("id"));
Result result = myuser.get(get);
Cell[] cells = result.rawCells();
for (Cell cell : cells) {
System.out.println(Bytes.toString(CellUtil.cloneValue(cell)));
System.out.println(Bytes.toString(CellUtil.cloneRow(cell)));
System.out.println(Bytes.toString(CellUtil.cloneQualifier(cell)));
System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)));
}
myuser.close();
connection.close();
}
5、通过startrow和stoprow范围查找
@Test
public void searchRange() throws IOException {
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.property.clientPort", "2181");
conf.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");
Connection connection = ConnectionFactory.createConnection(conf);
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Scan scan = new Scan();
scan.setStartRow(Bytes.toBytes("rk001"));
scan.setStopRow(Bytes.toBytes("rk003"));
ResultScanner scanner = myuser.getScanner(scan);
for (Result result : scanner) {
System.out.println(Bytes.toString(result.getRow()));
System.out.println(Bytes.toString(result.getValue(Bytes.toBytes("cf1"), Bytes.toBytes("name"))));
}
myuser.close();
connection.close();
}
6、通过Scan进行全表扫描
@Test
public void seachByScan() throws IOException {
Configuration configuration = new Configuration();
configuration.set("hbase.zookepper.property.clientPort", "2181");
configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");
Connection connection = ConnectionFactory.createConnection(configuration);
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Scan scan = new Scan();
ResultScanner scanner = myuser.getScanner(scan);
for (Result result : scanner) {
System.out.println(Bytes.toString(result.getValue(Bytes.toBytes("cf1"), Bytes.toBytes("name"))));
System.out.println(Bytes.toString(result.getRow()));
}
myuser.close();
connection.close();
}
7、指定rowkey删除一条记录
@Test
public void deleteByRowkey() throws IOException {
Configuration configuration = new Configuration();
configuration.set("hbase.zookeeper.property.clientPort", "2181");
configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");
Connection connection = ConnectionFactory.createConnection(configuration);
Table myuser = connection.getTable(TableName.valueOf("myuser"));
Delete delete = new Delete("rk001".getBytes());
myuser.delete(delete);
myuser.close();
connection.close();
}
8、删除表
@Test
public void deleteTable() throws IOException {
Configuration configuration = new Configuration();
configuration.set("hbase.zookeeper.property.clientPort", "2181");
configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");
Connection connection = ConnectionFactory.createConnection(configuration);
Admin admin = connection.getAdmin();
TableName myuser = TableName.valueOf("myuser");
admin.disableTable(myuser);
admin.deleteTable(myuser);
admin.close();
}