2017-07-28 80 views
0

我正在尝试使用count命令获取hbase中的表的列表的计数。我目前将所有的命令放在input.txt中。hbase命令的shell脚本|计数'表'

样品输入

count 'test.table1', INTERVAL => 10000000, CACHE => 10000000 
count 'test.table2', INTERVAL => 10000000, CACHE => 10000000 

命令

hbase shell ./input.txt 

有没有写一个shell脚本,这样我可以通过shell脚本上的nohup.out运行,并得到像下面的输出,这样的方式我可以运行它的任何数量的表:

table1,500000 
table2,300 

欣赏这方面的任何帮助

回答

1

这段代码可能会帮助您获取HBase中所有表的记录数。

#!/bin/bash echo 'list' | hbase shell | sed -e '1,/TABLE/d' -e '/seconds/,$d' | while IFS='' read -r line || [[ -n "$line" ]]; do echo "count '$line'" | hbase shell | tail -n 1 | xargs echo "$line,">> ./tableCount.log done

在HBase的1.1.8测试这一点,输出将被存储在tableCount.log。

+0

嗨,感谢您的信息..我们是如何传递表名列表作为输入文件? – divyanair

+0

不,上面的代码首先获取HBase中的表的列表,然后得到no。每个表的行数。 –