1. 下載protobuf-2.5.0解壓,若是是window下,額外下載protoc-2.5.0-win32,解壓,將protoc.exe放在protobuf-2.5.0下的src目錄下html
2. 配置環境變量,添加path路徑指向protobuf目錄的src中java
3. 查看當前版本,在命令提示符中輸入命令express
4. 建立一個空白的文本文件 命名爲 CustomNumberComparator.proto 即 後綴文件類型爲protoapache
5. 用記事本打開CustomNumberComparator.proto文件輸入如下內容編程
6. 進入命令提示符,使用命令讀取CustomNumberComparator.proto的內容生成java代碼,即自定義比較器的序列化類數組
內容: protoc.exe -I=C:/proto --java_out=C:/proto C:/proto/CustomNumberComparator.protoapp
輸入後會在指定的/protoc中生成一個文件夾less
獲得自定義比較器的序列化類ide
7. 將生成的文件夾拷貝到idea編程工具中,注意粘貼的路徑爲java下工具
8. 新建一個自定義過濾器類CustomNumberComparator
9. CustomNumberComparator繼承ByteArrayComparable類,重寫方法,代碼以下
10.核心內容爲compareTo方法的內容,即爲過濾的邏輯實現
@Override
public int compareTo(byte[] bytes, int offset, int length) {
if (fieldType.equalsIgnoreCase("String")) {
//HbaseValue是在Hbase上搜索到的一條數據
String HbaseValue = Bytes.toString(bytes, offset, length).toLowerCase(Locale.ROOT);
String substring1 = HbaseValue.substring(1, 5);
String substring2 = HbaseValue.substring(17, 22);
String ClientValue = byteConvertObj(String.class, this.data);//客戶端傳入的過濾內容
String[] split = ClientValue.split(",");
if (substring1.contains(split[0]) && substring2.contains(split[1])) {//是否須要過濾
return 0;//選擇
} else {
return 1;//過濾
}
}
return 1;//過濾
}
11.將這個項目打成jar架包放入hbase根目錄中的lib下
選中以後自動打包成jar
將這個架包發送到hbase的lib目錄中,重啓hbase
12. 使用自定義類查詢結果
代碼以下
hbase經過網關訪問即thrift2 <hbase_home>/bin/hbase thrift2/thrift start 啓動