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