面试题答案
一键面试布隆过滤器类型参数
- hbase.regionserver.bloom.filter.type:
- 作用:该参数用于指定布隆过滤器的类型,可取值为
ROW
、ROWCOL
。ROW
类型的布隆过滤器仅基于行键(Row Key)构建,能快速判断某行是否存在,适用于仅基于行键进行查询的场景;ROWCOL
类型基于行键和列族构建,可更精准判断某行某列族的数据是否存在,在涉及行键和列族的查询场景中有更好表现。 - 示例:在
hbase - site.xml
中配置<property><name>hbase.regionserver.bloom.filter.type</name><value>ROW</value></property>
- 作用:该参数用于指定布隆过滤器的类型,可取值为
位向量大小相关参数
- hbase.bloom.filter.bitvector.size:
- 作用:决定布隆过滤器中位向量(Bit Vector)的大小,以字节为单位。位向量大小直接影响布隆过滤器的误判率。位向量越大,能容纳的哈希映射信息越多,误判率越低,但会占用更多内存。
- 示例:若设置为较大值,如
1024
(1KB),误判率会相对较低,但占用内存增多。可根据实际数据量和内存情况调整,在hbase - site.xml
中配置<property><name>hbase.bloom.filter.bitvector.size</name><value>1024</value></property>
哈希函数数量相关参数
- hbase.bloom.filter.nhashes:
- 作用:指定布隆过滤器使用的哈希函数数量。哈希函数数量影响数据映射到位向量的分布情况。数量过少,可能导致哈希碰撞过多,误判率升高;数量过多,计算开销增大,也可能因过度映射导致误判率上升。合适的哈希函数数量能在误判率和计算性能间取得平衡。
- 示例:通常经验值在 3 - 5 之间,如设置为
4
,在hbase - site.xml
中配置<property><name>hbase.bloom.filter.nhashes</name><value>4</value></property>
布隆过滤器应用范围参数
- hbase.hstore.bloom.filter.type:
- 作用:控制布隆过滤器在 HStore 层面的应用方式。与
hbase.regionserver.bloom.filter.type
类似,但更侧重于 HStore 内部的控制,同样可取值ROW
、ROWCOL
等,决定在 HStore 中基于何种粒度构建布隆过滤器。 - 示例:可在
hbase - site.xml
中配置<property><name>hbase.hstore.bloom.filter.type</name><value>ROWCOL</value></property>
来指定在 HStore 中基于行键和列族构建布隆过滤器。
- 作用:控制布隆过滤器在 HStore 层面的应用方式。与