2017-08-13 163 views
1

我明白shell命令count会给出表的行数/行数。但是INTERVAL和CACHE在这里表示了什么?我查了网。几乎所有的网站都有相同的解释HBase count shell命令

“默认情况下每1000行显示当前计数,可以选择指定计数间隔默认情况下计数扫描启用扫描缓存默认缓存大小为10行如果我们行很小,你可能想增加这个参数。例如:“

我不明白他们在解释什么。

hbase> COUNT 't1', INTERVAL => 100000 
hbase> COUNT 't1', CACHE => 1000 
hbase> COUNT 't1', INTERVAL => 10, CACHE => 1000 

任何人都可以简单的解释吗?

回答

2

您可以使用一个大表(超过2000行)来运行count命令,并且您可以看到它们的工作方式。

由于count操作可能需要很长的时间,所以这将打印在当前结果而上,像这样:

Current count: 1000, row: ...                       
Current count: 2000, row: .....                          
Current count: 3000, row: .... 

因此,如果间隔为1000,那么其会在有史以来计数过程得到打印1000.

Cache只是scan命令的缓存。基本上,计数过程将是,如果增加高速缓存配置更快,但是会花费更多的内存,所以它说:

如果行的体积小,你可能想提高这个 参数。

0

@MallowFox解释COUNT好。

但是,高速缓存有点混乱。为什么缓存会让计数更快?它不需要记住它所计算的行。重要的是多少行,而不是他们的内容。

事实证明,缓存有点不恰当,缓存应该更恰当地命名为缓冲区或批量大小。这是每个RPC到HBase的行数。如果数字太低,则可能会增加开销,并且计数可能会变得更慢。

更多关于这家在这里:

https://stackoverflow.com/a/22547731/492773