面试题答案
一键面试hbase.hregion.memstore.flush.size
:- 作用机制:该参数定义了MemStore刷写为HFile的阈值。当MemStore占用内存达到此大小,HBase会将MemStore中的数据刷写到磁盘上的HFile。如果设置过小,会导致频繁刷写,增加I/O开销;设置过大,可能会因内存占用过多导致RegionServer内存溢出。
hbase.regionserver.global.memstore.upperLimit
:- 作用机制:表示RegionServer上所有MemStore占用堆内存的上限比例。当所有MemStore占用内存达到这个比例时,会触发强制刷写操作,以防止内存耗尽。合理调整此参数可以平衡内存使用和刷写频率,从而影响读写性能。
hbase.hstore.blockingStoreFiles
:- 作用机制:此参数指定了一个Store下HFile的数量阈值。当Store中的HFile数量达到这个值时,会触发合并操作(Compaction)。若设置过小,会导致频繁合并,增加I/O和CPU负载;设置过大,可能使查询时需要读取更多的HFile,降低读性能。
hbase.client.write.buffer
:- 作用机制:用于设置客户端写入数据时的缓冲区大小。客户端会将数据先写入这个缓冲区,当缓冲区满时,再批量发送到RegionServer。合适的缓冲区大小能减少网络传输次数,提高写入性能。若设置过小,会导致频繁网络传输;设置过大,可能占用过多客户端内存。