
1.获取链接
public static final String ZK_CONNECT_KEY = "hbase.zookeeper.quorum";public static final String ZK_CONNECT_VALUE = "reiser001:2181,reiser002:2181,reiser003:2181";config = HBaseConfiguration.create();config.set(HBase_Constants.ZK_CONNECT_KEY, HBase_Constants.ZK_CONNECT_VALUE);connection = ConnectionFactory.createConnection(config);admin = connection.getAdmin();
2.创建表
@Overridepublic void createTable(String tableName, String[] family) throws Exception {TableName name = TableName.valueOf(tableName);if (admin.tableExists(name)) {System.out.println("表已经存在");} else {// TODO 注释:构建列蔟对象List<ColumnFamilyDescriptor> list = new ArrayList<>();for (String s : family) {ColumnFamilyDescriptor cf = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(s)).setDataBlockEncoding(DataBlockEncoding.PREFIX).setBloomFilterType(BloomType.ROW).build();list.add(cf);}// TODO 注释:构建表对象TableDescriptor table = TableDescriptorBuilder.newBuilder(name).setColumnFamilies(list).build();admin.createTable(table);if (admin.tableExists(name)) {System.out.println("表创建成功");} else {System.out.println("表创建失败");}}}
3.插入数据
@Overridepublic void putData(String tableName, String rowKey, String familyName, String columnName, String value, long timestamp) throws Exception {Put put = new Put(Bytes.toBytes(rowKey));Table table = connection.getTable(TableName.valueOf(tableName));put.addColumn(Bytes.toBytes(familyName), Bytes.toBytes(columnName), timestamp, Bytes.toBytes(value));table.put(put);}
4.删除数据
@Overridepublic void deleteColumn(String tableName, String rowKey, String falilyName, String columnName) throws Exception {Table table = connection.getTable(TableName.valueOf(tableName));Delete deleteColumn = new Delete(Bytes.toBytes(rowKey));deleteColumn.addColumn(Bytes.toBytes(falilyName), Bytes.toBytes(columnName));table.delete(deleteColumn);}
5.查询数据 - 有 rowkey
@Overridepublic Result getResult(String tableName, String rowKey, String familyName, String columnName) throws Exception {Table table = connection.getTable(TableName.valueOf(tableName));Get get = new Get(Bytes.toBytes(rowKey));get.addColumn(Bytes.toBytes(familyName), Bytes.toBytes(columnName));return table.get(get);}
6.查询数据 - 无 rowkey
@Overridepublic ResultScanner getResultScann(String tableName, String columnFamily, String qualifier) throws Exception {Scan scan = new Scan();scan.addColumn(Bytes.toBytes(columnFamily), Bytes.toBytes(qualifier));Table table = connection.getTable(TableName.valueOf(tableName));return table.getScanner(scan);}
