Hbase 高级特性Bloom filter
生活随笔
收集整理的這篇文章主要介紹了
Hbase 高级特性Bloom filter
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Bloom filter 簡單而言就是對hash 表的創(chuàng)新,用在 Hbase 中可以有有效減少磁盤IO次數(shù)。?
圖片來源:hbase 權(quán)威指南?
**使用場景總結(jié):
**
下面是一個java 的簡單實現(xiàn)
package basic; /* * @author: wjf * @version: 2016年4月15日 下午10:05:28 */import java.util.BitSet;public class BloomFilter {private static int DEFAULT_SIZE=1<<24;private int[] seeds={3,5,7,11,13,17,31,41};private static BitSet bits=new BitSet(DEFAULT_SIZE);private SimpleHash[] hashs=new SimpleHash[seeds.length];public boolean addValue(String value){if(value==null){return false;}else{for(int i=0;i<seeds.length;i++){hashs[i]=new SimpleHash(DEFAULT_SIZE,seeds[i]);bits.set(hashs[i].hash(value),true);}return true;}}public boolean contains(String value){if(value==null){return false;}else{boolean ret=true;for(SimpleHash h:hashs){ret=ret && bits.get(h.hash(value));if(ret == false){return false;}}return true;}}public static void main(String[] args) {// TODO Auto-generated method stubBloomFilter bfilter=new BloomFilter();bfilter.addValue("just for test");System.out.println(bfilter.contains("just for test"));}} class SimpleHash{private int cap;private int seed;public SimpleHash(int cap,int seed){this.cap=cap;this.seed=seed;}public int hash(String value){int result=0;for(int i=0;i<value.length();i++){result=result*seed+value.charAt(i);}return (cap-1)&result;} }總結(jié)
以上是生活随笔為你收集整理的Hbase 高级特性Bloom filter的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HBase中Bloomfilter类型的
- 下一篇: HBase之BloomFilter