【发布时间】:2014-10-02 06:20:23
【问题描述】:
我有 HBase 表,它有超过十亿条记录。当我使用某些 ValueFilter 查询扫描 HBase 表时,我得到 41820 条记录,但是给出结果需要超过 35 分钟,但是当我使用 mapreduce 程序扫描同一个 HBase 表时,我在 2 分钟内得到了计数但给了我41035 条记录。我不知道。
这是我使用的 shell 命令:
scan 'permhistory', { COLUMNS => 'h:e_source', FILTER => "ValueFilter( =, 'binaryprefix:AC_B2B' )" }
结果:41820
这是 mapreduce 中的 Scan 对象:
Scan scan = new Scan();
scan.setCaching(2000);
scan.setCacheBlocks(false);
scan.addFamily(Bytes.toBytes("h"));
scan.addColumn(Bytes.toBytes("h"), Bytes.toBytes("e_source"));
SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes("h"),
Bytes.toBytes("e_source"),CompareOp.EQUAL,Bytes.toBytes("AC_B2B"));
filter.setLatestVersionOnly(false);
scan.setFilter(filter);
有什么想法吗?这是我在这里的第一篇文章。各位高手,能帮帮我吗?我有点坚持自动化我们的系统
【问题讨论】: