HBase???????????????????,??????????
- ??
count()
??:
?HBase Shell?,?????count()
???????????????????????????,?????????,??????????
hbase(main):001:0> count 'your_table_name'
- ??
Scan
?Count
:
??????Java API?????????,??Scan
???Count
????????????????????:
import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.*; public class HBaseCountRows { public static void main(String[] args) throws Exception { Configuration conf = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(conf); Admin admin = connection.getAdmin(); TableName tableName = TableName.valueOf("your_table_name"); Scan scan = new Scan(); scan.setCountOnly(true); ResultScanner scanner = admin.getScanner(tableName, scan); int rowCount = 0; for (Result result : scanner) { rowCount++; } System.out.println("Total rows: " + rowCount); scanner.close(); admin.close(); connection.close(); } }
- ??
Count
?Get
:
????????Count
?Get
????????????????????????????,??????????????????????:
import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.*; public class HBaseCountRows { public static void main(String[] args) throws Exception { Configuration conf = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(conf); Admin admin = connection.getAdmin(); TableName tableName = TableName.valueOf("your_table_name"); int rowCount = 0; for (int i = 0; i < 100; i++) { // Assuming the table is large enough to require multiple Get requests Get get = new Get(Bytes.toBytes(String.format("d", i))); Result result = admin.get(tableName, get); if (result.isEmpty()) { break; // No more data } rowCount++; } System.out.println("Total rows: " + rowCount); admin.close(); connection.close(); } }
???,?????????HBase????????????????????,????count()
???Java API??Scan
?????????????