如何找到给定 HBase table 的区域数?

How can I find the number of regions for a given HBase table?

我认为这很容易,但找不到任何答案。希望这可以使用命令行工具来完成。或者 Python 工具。

或者至少找出有多少个 hfile?

您有几个选择:

1 通过 HTTP:http://[your_hbase_master]:60010/table.jsp?name=[your_table]

2 命令行:

$ hadoop fs -ls /hbase/[your_table]

Found 8 items
-rw-r--r--   3 hbase hbase       1893 2013-05-25 18:03 /hbase/[your_table]/.tableinfo.0000000001
drwxr-xr-x   - hbase hbase          0 2013-05-25 18:03 /hbase/[your_table]/.tmp
drwxr-xr-x   - hbase hbase          0 2014-11-04 06:34 /hbase/[your_table]/045ab87f468ba9e967a0987ca98b7db4
drwxr-xr-x   - hbase hbase          0 2014-11-04 06:34 /hbase/[your_table]/062bc3ef65b9db80a1eeb2c1f4229fdb
drwxr-xr-x   - hbase hbase          0 2014-11-04 06:34 /hbase/[your_table]/0a921049a908dbc929b160210a397632
drwxr-xr-x   - hbase hbase          0 2014-11-04 06:34 /hbase/[your_table]/43a9576bad8845f7d7baacc97882eec6
drwxr-xr-x   - hbase hbase          0 2014-11-04 06:34 /hbase/[your_table]/f492c709d17c4ded150014543f21e362
drwxr-xr-x   - hbase hbase          0 2014-11-04 06:34 /hbase/[your_table]/fa465c6a27023d49893de3c1004efd29

您将在每个区域获得一个目录(不包括 .tmp 和 .tableinfo):

3 在 JAVA 中您可以使用 HBaseAdmin.getTableRegions(byte[])