布隆过滤器二进制向量 ,不用将数据存入 byte数组里, 而是存入bit (比特)里
通过hashcode%字符串,将hashcode结果映射到bit里,存入为1 不存在为0
有可能hash碰撞,本来不在,误判为在, 不可能是 不在误判为在
(hbase在底层是通过布隆过滤器,那么如果查找rowkey本来不在确判定在,那么也没有上面影响只是浪费时间查找,不会存在,本来rowkey在这个hfile里,但是出现0不在的情况)
改进,用多种hash算法,对同一个事物得到多个hash值映射到bit数组的多个位置 或者增加byte长度
在一大堆数据里面.判断某个数据是否存在,布隆过滤器是将待匹配的数据
不用真的存起来,而是用hash算法将数据映射到字节数组的若干个bit里
如果有新事务来的话,用新事物通过hash,然后比对bit进行对比,如果为1 就存在
应用场景(案例的新老用户(将),hbase)
布隆过滤器的判断错误率算法
bytes的长度:M
几个bithash :K
存入的数据多少:N