Hbase的maven依赖:

<dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>2.3.3</version>
</dependency>

1、利用Admin进行列出详细信息

列出所有的namespace:

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);HBaseAdmin hBaseAdmin = (HBaseAdmin) connection.getAdmin();String[] listNamespaces = hBaseAdmin.listNamespaces();Stream.of(listNamespaces).forEach(System.out::println);
Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);HBaseAdmin hBaseAdmin = (HBaseAdmin) connection.getAdmin();NamespaceDescriptor[] namespaceDescriptors = hBaseAdmin.listNamespaceDescriptors();Stream.of(namespaceDescriptors).forEach(System.out::println);

列出某个namespace下的我所有的table(表):

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);HBaseAdmin hBaseAdmin = (HBaseAdmin) connection.getAdmin();TableName[] tableNames = hBaseAdmin.listTableNamesByNamespace("hbase");Stream.of(tableNames).forEach(tableName -> {System.out.println(tableName.getNameAsString());});
Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);HBaseAdmin hBaseAdmin = (HBaseAdmin) connection.getAdmin();TableDescriptor[] tableDescriptors = hBaseAdmin.listTableDescriptorsByNamespace("hbase");Stream.of(tableDescriptors).forEach(tableDescriptor -> {System.out.println(tableDescriptor.getTableName().getNameAsString());});

2、DDL操作

前提:要配置HADOOP_HONE和修改path环境变量

注意:所有的DDL操作都会使用Admin对象来操作

创建名称空间:

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);HBaseAdmin hBaseAdmin = (HBaseAdmin) connection.getAdmin();NamespaceDescriptor namespaceDescriptor = NamespaceDescriptor.create("nm1").build();hBaseAdmin.createNamespace(namespaceDescriptor);

创建表:

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);HBaseAdmin hBaseAdmin = (HBaseAdmin) connection.getAdmin();ColumnFamilyDescriptor info1ColumnFamilyDescriptor = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("info1")).build();ColumnFamilyDescriptor info2ColumnFamilyDescriptor = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("info2")).build();TableDescriptor tableDescriptor = TableDescriptorBuilder.newBuilder(TableName.valueOf("nm1:student")).setColumnFamilies(Arrays.asList(info1ColumnFamilyDescriptor,info2ColumnFamilyDescriptor)).build();hBaseAdmin.createTable(tableDescriptor);

修改表:

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);HBaseAdmin hBaseAdmin = (HBaseAdmin) connection.getAdmin();ColumnFamilyDescriptor info1ColumnFamilyDescriptor = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("info1")).build();ColumnFamilyDescriptor info2ColumnFamilyDescriptor = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("info2")).setMaxVersions(5).build();TableDescriptor tableDescriptor = TableDescriptorBuilder.newBuilder(TableName.valueOf("nm1:student")).setColumnFamilies(Arrays.asList(info1ColumnFamilyDescriptor,info2ColumnFamilyDescriptor)).build();hBaseAdmin.modifyTable(tableDescriptor);

删除列簇:

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);HBaseAdmin hBaseAdmin = (HBaseAdmin) connection.getAdmin();hBaseAdmin.deleteColumnFamily(TableName.valueOf("nm1:student"),Bytes.toBytes("info2"));

获取表的所有列簇:

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);HBaseAdmin hBaseAdmin = (HBaseAdmin) connection.getAdmin();TableDescriptor tableDescriptor = hBaseAdmin.getTableDescriptor(TableName.valueOf("nm1:student"));ColumnFamilyDescriptor[] columnFamilies = tableDescriptor.getColumnFamilies();Stream.of(columnFamilies).forEach(columnFamilyDescriptor -> {System.out.println(columnFamilyDescriptor.getNameAsString());System.out.println(columnFamilyDescriptor.getMaxVersions());});

删除表:

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);HBaseAdmin hBaseAdmin = (HBaseAdmin) connection.getAdmin();TableName tableName = TableName.valueOf("nm1:student");if (hBaseAdmin.tableExists(tableName)) {if (hBaseAdmin.isTableEnabled(tableName)){hBaseAdmin.disableTable(tableName);}hBaseAdmin.deleteTable(tableName);}}

3、DML操作

数据的插入:

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));Put put = new Put(Bytes.toBytes("row1"));put.addColumn(Bytes.toBytes("family1"),Bytes.toBytes("age"),Bytes.toBytes("28"));table.put(put);connection.close();

获取某个列簇:

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));Get get = new Get(Bytes.toBytes("row1"));Result result = table.get(get);NavigableMap<byte[], byte[]> map = result.getFamilyMap(Bytes.toBytes("family1"));map.forEach((key, value) -> {System.out.println(Bytes.toString(key) + " : " + Bytes.toString(value));});connection.close();

获取所有的列簇:

configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));Get get = new Get(Bytes.toBytes("row1"));Result result = table.get(get);CellScanner cellScanner = result.cellScanner();while (cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}connection.close();

扫描表:

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));Scan scan = new Scan();ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

删除行:

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));Delete delete = new Delete(Bytes.toBytes("row3"));table.delete(delete);connection.close();

数据的更改(版本的增加):

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);//获取hbase的创建的表名TableName tableName = TableName.valueOf("mine:student");//根据表名获取tableTable table = connection.getTable(tableName);//通过hbase的util包下的Bytes获取rowId的字节数组byte[] row2s = Bytes.toBytes("row1");Put put = new Put(row2s);byte[] infosFamily = Bytes.toBytes("family1");byte[] namesColumn = Bytes.toBytes("name");byte[] values = Bytes.toBytes("wtl");put.addColumn(infosFamily,namesColumn,values);//数据插入table.put(put);

完全分布式下的操作:

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);TableName tableName = TableName.valueOf("mine:student");Table table = connection.getTable(tableName);Get get = new Get(Bytes.toBytes("row1"));Result result = table.get(get);byte[] value = result.getValue(Bytes.toBytes("family1"),Bytes.toBytes("name"));System.out.println(Bytes.toString(value));

4、where(过滤器)的使用

4.1、SingleColumnValueFilter

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));Scan scan = new Scan();SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter(Bytes.toBytes("family1"),Bytes.toBytes("age"),CompareOperator.LESS,Bytes.toBytes("30"));//设置单值过滤,如果没有这个属性列,就不计算它singleColumnValueFilter.setFilterIfMissing(true);scan.setFilter(singleColumnValueFilter);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();        

4.2、过滤器链

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);SingleColumnValueFilter singleColumnValueFilter1 = new SingleColumnValueFilter(Bytes.toBytes("family1"),Bytes.toBytes("age"),CompareOperator.LESS,Bytes.toBytes("30"));SingleColumnValueFilter singleColumnValueFilter2 = new SingleColumnValueFilter(Bytes.toBytes("family1"),Bytes.toBytes("name"),CompareOperator.EQUAL,Bytes.toBytes("wtl"));filterList.addFilter(singleColumnValueFilter1);filterList.addFilter(singleColumnValueFilter2);Scan scan = new Scan();scan.setFilter(filterList);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

4.3、正则比较器(RegexStringComparator)

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));RegexStringComparator regexStringComparator = new RegexStringComparator("^w[a-zA-Z]*");SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter(Bytes.toBytes("family1"),Bytes.toBytes("name"),CompareOperator.EQUAL,regexStringComparator);//设置单值过滤,如果没有这个属性列,就不计算它singleColumnValueFilter.setFilterIfMissing(true);Scan scan = new Scan();scan.setFilter(singleColumnValueFilter);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

4.4、SubstringComparator

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));SubstringComparator substringComparator = new SubstringComparator("f");SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter(Bytes.toBytes("family1"),Bytes.toBytes("name"),CompareOperator.EQUAL,substringComparator);//设置单值过滤,如果没有这个属性列,就不计算它singleColumnValueFilter.setFilterIfMissing(true);Scan scan = new Scan();scan.setFilter(singleColumnValueFilter);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

4.5、BinaryComparator

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));BinaryComparator binaryComparator = new BinaryComparator(Bytes.toBytes("wtl"));SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter(Bytes.toBytes("family1"),Bytes.toBytes("name"),CompareOperator.EQUAL,binaryComparator);//设置单值过滤,如果没有这个属性列,就不计算它singleColumnValueFilter.setFilterIfMissing(true);Scan scan = new Scan();scan.setFilter(singleColumnValueFilter);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

4.6、BinaryPrefixComparator

        Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));BinaryPrefixComparator binaryPrefixComparator = new BinaryPrefixComparator(Bytes.toBytes("w"));SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter(Bytes.toBytes("family1"),Bytes.toBytes("name"),CompareOperator.EQUAL,binaryPrefixComparator);//设置单值过滤,如果没有这个属性列,就不计算它singleColumnValueFilter.setFilterIfMissing(true);Scan scan = new Scan();scan.setFilter(singleColumnValueFilter);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

4.7、列簇过滤器(FamilyFilter)

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));RegexStringComparator regexStringComparator = new RegexStringComparator();FamilyFilter familyFilter = new FamilyFilter(CompareOperator.EQUAL,regexStringComparator);Scan scan = new Scan();scan.setFilter(familyFilter);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

4.8、列过滤器

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));SubstringComparator substringComparator = new SubstringComparator("a");QualifierFilter qualifierFilter = new QualifierFilter(CompareOperator.EQUAL,substringComparator);Scan scan = new Scan();scan.setFilter(qualifierFilter);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

4.9、ColumnPrefixFilter

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));ColumnPrefixFilter columnPrefixFilter = new ColumnPrefixFilter(Bytes.toBytes("a"));Scan scan = new Scan();scan.setFilter(columnPrefixFilter);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

4.10、MultipleColumnPrefixFilter

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));byte[][] prefixs = {Bytes.toBytes("a"),Bytes.toBytes("n")};MultipleColumnPrefixFilter multipleColumnPrefixFilter = new MultipleColumnPrefixFilter(prefixs);Scan scan = new Scan();scan.setFilter(multipleColumnPrefixFilter);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

4.11、ColumnRangeFilter

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));//false、true代表是否包含=ColumnRangeFilter columnRangeFilter = new ColumnRangeFilter(Bytes.toBytes("age"),true,Bytes.toBytes("sex"),false);Scan scan = new Scan();scan.setFilter(columnRangeFilter);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

4.12、RowFilter

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));BinaryComparator binaryComparator = new BinaryComparator(Bytes.toBytes("row1"));RowFilter rowFilter = new RowFilter(CompareOperator.EQUAL,binaryComparator);Scan scan = new Scan();scan.setFilter(rowFilter);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

4.13、FirstKeyOnlyFilter:获取每个列簇的第一个key

Configuration configuration = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03");//configuration.set("hbase.master", "192.168.60.101:16010");//利用connectionFactory创建hbase的连接Connection connection = ConnectionFactory.createConnection(configuration);Table table = connection.getTable(TableName.valueOf("mine:student"));FirstKeyOnlyFilter firstKeyOnlyFilter = new FirstKeyOnlyFilter();Scan scan = new Scan();scan.setFilter(firstKeyOnlyFilter);ResultScanner resultScanner = table.getScanner(scan);Iterator<Result> iterator = resultScanner.iterator();while (iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();System.out.println(Bytes.toString(CellUtil.cloneFamily(cell)) + ":" +Bytes.toString(CellUtil.cloneRow(cell)) + "=>" +Bytes.toString(CellUtil.cloneQualifier(cell)) + "," +Bytes.toString(CellUtil.cloneValue(cell)));}System.out.println("--------------------------------------------------");}connection.close();

HBase的CRUD的Java Api操作相关推荐

  1. 使用 Java API 操作 HBase

    使用 Java API 操作 HBase 数据库,就类似HBase Shell,本质上一个是Java 代码,一个是Shell 命令.(hadoop 的文件系统莫不如此,可用Java API 的方式操作 ...

  2. Hbase java API操作(模板代码)

    Hbase java API操作 1 创建maven工程 导入jar包 <repositories><repository><id>cloudera</id& ...

  3. Hbase 完全分布式模式的搭建、命令行操作、Java API操作

    追风赶月莫停留,平芜尽处是春山. 文章目录 追风赶月莫停留,平芜尽处是春山. 环境 Hbase 完全分布式模式的搭建 一.下载安装包,解压到合适位置: 二.配置相关的文件: 三.将Hbase复制到其他 ...

  4. 2021年大数据ZooKeeper(五):ZooKeeper Java API操作

    目录 ZooKeeper Java API操作 引入maven坐标 节点的操作 ZooKeeper Java API操作 这里操作Zookeeper的JavaAPI使用的是一套zookeeper客户端 ...

  5. Kafka系列三 java API操作

    使用java API操作kafka 1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...

  6. Hadoop详解(四):HDFS shell操作和Java API操作

    1. HDFS环境准备 1.1 HDFS的格式化与启动 HDFS配置完之后就可以对其进行格式化操作.在NameNode所在机器上执行如下命令进行HDFS的格式化操作: hadoop namenode ...

  7. Windows下使用Java API操作HDFS的常用方法

    场景 Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/det ...

  8. Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS

    场景 HDFS的访问方式之HDFS shell的常用命令: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119351218 在上 ...

  9. 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作

    大数据技术之_20_Elasticsearch学习_01 一 概述 1.1 什么是搜索? 1.2 如果用数据库做搜索会怎么样? 1.3 什么是全文检索和 Lucene? 1.4 什么是 Elastic ...

最新文章

  1. 2009年上半年网络工程师考试下午试卷参考答案(一)
  2. Java基础day5
  3. 转载-C#委托之多播委托( 二)
  4. Oracle移除表空间的数据文件 ora-00604 ora-01426
  5. Hls之播放遇到的坑
  6. 国内几款通用论坛程序简介和比较
  7. 2020年HS芯片说明海思论坛
  8. 计算机未来的发展趋势和现状,计算机发展现状跟未来发展趋势.docx
  9. 朱松纯:浅谈人工智能:现状、任务、构架与统一 感悟以及部分内容的概括
  10. Watts S. Humphrey:软件质量之父
  11. 第十七节:通信之WLAN(WPA3-Ⅰ)
  12. php家居门户源码,家居装修门户模板源码discuz模板 php家居装修网论坛源码
  13. 几种基本放大电路详解
  14. 麦卡锡问答:什么是人工智能?
  15. MySQL导入mdx_浅谈MDX数据库
  16. Python提取PDF文档页面——PyMuPDF使用
  17. 编写程序,提示用户输入学号、成绩
  18. 引入静态路由_网络工程师提高篇 | 路由重发布你了解多少?从原理到配置,瑞哥带你学习一波!...
  19. Windows重置提示找不到恢复环境
  20. 预推免的内耗---还好上岸了,要不就淹死了

热门文章

  1. 高德地图开发设置细节概览
  2. 抓取豆瓣APP的信息
  3. rcnn 回归_基础目标检测算法介绍:CNN、RCNN、Fast RCNN和Faster RCNN
  4. lol哪个服务器有无限乱斗,《LOL》无限乱斗模式什么时候上线 无限乱斗模式上线时间一览...
  5. Multisim14 电子时钟(拥有定时闹钟、设置时间、全局复位功能)
  6. 数的三次方(C++算法——二分)
  7. STM32 PWM波频率、占空比以及死区计算详细讲解
  8. SQL server培训(一)
  9. POJ——3624 Balanced Lineup(线段树入门——区间最值问题)
  10. c语言的long是什么意思,C语言*(long*)0=0是什么意思?