如何在hbase中创建表时手动获取预拆分的区域号?

91zkwejq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(381)

我正在通过hbase shell查看一个包含126个区域的表。但我无法确定在创建表的过程中手动定义了多少区域。有什么查询我可以执行并获得详细信息吗?

zyfwsgd6

zyfwsgd61#

不确定我是否得到了您想要的,但是您可能可以使用区域时间创建来实现这个目的。在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')"}

相关问题