用于了解HBase中表的大小的命令

时间:2016-08-09 12:05:22

标签: hadoop hbase

我指的是Is there any command that I can learn the size of a table at Hbase?但作为普通用户,我对hdfs dfs -du /hbase目录上的/hbase命令没有访问权限。由于我在HBase中创建了一个表(比如customer)并插入了大约100K的记录,我怎么知道customer表的大小?

2 个答案:

答案 0 :(得分:0)

假设您处于典型的hadoop设置中,您可以像任何用户一样运行hadoop命令。

因此,您应该能够这样做,为您准备文件系统命令:

HADOOP_USER_NAME=hdfs

当然,你会谨慎使用它。

如果您处于安全的环境中(例如使用kerberos),那么这当然不起作用。

答案 1 :(得分:0)

两种可能的方法,既不好。 :)

1)对于Java Developer,使用HBaseAdmin通过实用程序连接到群集。像这样的东西

   Collection<ServerName> servers=admin.getClusterStatus().getServers()
   for (ServerName serverName: servers) {
       ServerLoad load=admin.getClusterStatus().getLoad(serverName);
        load.getMemstoreSizeInMB();
        load.getStorefileSizeInMB();
   }

2)如果您更多的是系统管理员,则可以点击每个区域服务器上的jmx指标。像

这样的东西

的http:// RegionServer的 regionserverPort / JMX

你可以像

那样使用grep信息

&#34; Namespace_splice_table_1472_region_a0db9d0ef5e7ae4262bde19a096b2f1f_metric_storeCount&#34; :1,  &#34; Namespace_splice_table_1472_region_a0db9d0ef5e7ae4262bde19a096b2f1f_metric_storeFileCount&#34; :1,&#34; Namespace_splice_table_1472_region_a0db9d0ef5e7ae4262bde19a096b2f1f_metric_memStoreSize&#34; :408,  &#34; Namespace_splice_table_1472_region_a0db9d0ef5e7ae4262bde19a096b2f1f_metric_storeFileSize&#34; :18908965,

我们使用命名空间拼接和数字在Splice Machine上创建表。因此该表是namespace = splice,table = 1472。

希望这会有所帮助,欢呼。