面试题答案
一键面试1. 布隆过滤器原理
布隆过滤器本质上是一个由二进制向量(位数组)和一系列哈希函数组成的数据结构。
- 初始化:位数组初始全部为0。
- 添加元素:当向布隆过滤器中添加一个元素时,该元素会通过多个哈希函数计算出多个哈希值,这些哈希值对应位数组的位置,将这些位置的二进制值置为1。
- 查询元素:查询一个元素是否存在时,同样用多个哈希函数计算哈希值,查看对应位数组位置的值。如果所有位置的值均为1,则认为该元素可能存在;若有任何一个位置为0,则该元素一定不存在。
2. HBase 中布隆过滤器增强数据安全性机制
- 防止不必要的磁盘I/O:HBase存储大量数据,若每次查询都直接读取磁盘数据,效率低且存在数据泄露风险。布隆过滤器在内存中快速判断数据可能存在的位置,减少对磁盘数据块的直接访问。例如,客户端发起查询,布隆过滤器先判断,若不存在则避免磁盘I/O,降低数据被非法获取的机会。
- 对数据存在性判断与安全性关联:虽然布隆过滤器存在误判(即元素可能不存在但判断为可能存在),但误判不影响安全性。因为判断为可能存在时才会进一步读取磁盘数据验证,不存在则直接返回,避免了非法请求对数据的访问。而若判断元素存在,后续读取磁盘数据过程中,HBase自身权限控制等机制进一步确保数据访问合法性,多重保障数据安全。
- 抵御恶意扫描攻击:恶意攻击者试图通过扫描大量数据获取敏感信息时,布隆过滤器使大部分不存在的数据快速被排除,增加攻击成本,降低数据被非法获取风险,从而增强数据安全性。