如何在hbase中创建表时手动预分割区域编号?

时间:2016-08-03 10:45:44

标签: hadoop split hbase hbase-shell

我正在通过hbase shell查看包含126个区域的表格。但我无法确定在创建表时手动定义了多少区域。我可以执行任何查询并获取详细信息吗?

1 个答案:

答案 0 :(得分:2)

不确定我是否得到了你想要的东西,但可能你可以为此目的使用区域时间创建。在hdfs文件系统中,hbase数据以下列格式存储:

hbase
   /<Table>             (Tables in the cluster)
        /<Region>           (Regions for the table)
             /<ColumnFamiy>      (ColumnFamilies for the Region for the table)
                  /<StoreFile>        (StoreFiles for the ColumnFamily for the Regions for the table)

因此,您可以使用hdfs dfs -ls命令获取表中所有区域的列表。您可以比较区域的创建日期以查找历史记录以及可能在创建表格时设置的区域数量:

hdfs dfs -ls /hbase/database/tablename/

drwxr-xr-x   - hbase hdfs          0 2016-07-27 12:36 /hbase/database/tablename/9d7c14813bfd871ccb10cf60d972787c
drwxr-xr-x   - hbase hdfs          0 2016-07-29 11:47 /hbase/database/tablename/f1cf0c45568153f35a03a183b6a096fa

此外,您可以尝试通过shell访问hbase的元数据命名空间以获取有关您的表的一些信息,但它会为您提供时间戳,对于我个人而言,对于您的案例而言,与纯日期相比更复杂的选项:

scan 'hbase:meta',{COLUMNS=> 'info:regioninfo', FILTER=>"PrefixFilter('yourtable')"}