1

我正在尝试使用 FuzzyRowFilter。我在 Cloudera 4.3.0 集群上的 Hbase 0.94.6-cdh4.3.0 上。

在点击链接之后,我从https://builds.apache.org/job/HBase-0.94/ws/trunk/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java获得了 java 文件来自https://issues.apache.org/jira/browse/HBASE-7628。我再也找不到次要版本 766,所以从 0.94 主干中提取了文件。

我有一个像这样扫描的测试表

hbase(main):005:0> scan 'test_fuzzy_rules' ROW COLUMN+CELL
1XX_2XX column=rules:rule1, timestamp=1375719501754, value=来自 rule1
1XX_2XX column=rules:rule2, timestamp=1375719535698, value=来自 rule2 的值
1 0.0170 秒内的行*

我设置了如下所示的规则过滤器,并将其与 Scan 对象和 HTable 相关联。

FuzzyRowFilter fuzzyFilter = new FuzzyRowFilter( Arrays.asList(new Pair<byte[], byte[]>(Bytes.toBytesBinary("\\x00\\x00\\x00_2XX"), new byte[] {1, 1, 1, 0 , 0, 0, 0 })));

当我运行我的工作时,我收到以下错误

org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=10, exceptions:
Mon Aug 05 17:20:04 BST 2013, org.apache.hadoop.hbase.client.ScannerCallable@556917ee, java.io.IOException: IPC server unable to read call parameters: Error in readFields

at org.apache.hadoop.hbase.client.ServerCallable.withRetries(ServerCallable.java:183)
    at org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:205)
    at org.apache.hadoop.hbase.client.ClientScanner.<init>(ClientScanner.java:120)
    at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:665)
    at xx.xx.xxxx.xx.xxxxxx.xxxxxx.xxxx.xxxx.main(XXXX.java:197)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:208).... 

知道这里发生了什么。我试图追踪错误但迷路了。

感谢和问候

4

0 回答 0