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)....
ここで何が起こっているのか、どんな考えでも。エラーを追跡しようとしましたが、失われました。
ありがとうございます。それでは、お元気で