1

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

4

1 回答 1

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')"}
于 2016-08-03T11:39:56.923 回答