我正在尝试使用FuzzyRowFilter。我在Hbase 0.94.6-cdh4.3.0上,在Cloudera 4.3.0集群上。
在关注https://builds.apache.org/job/HBase-0.94/ws/trunk/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java的链接后,我从https://issues.apache.org/jira/browse/HBASE-7628获得了java文件。我找不到 小版本766,所以从0.94 trunk中提取文件。
我有一个像这样扫描的测试表
HBase的(主):005:0>扫描'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)....
知道这里发生了什么。我试图追踪错误但却迷失了。
由于 此致