现在,我正在管理一个小型的hbase群集,该群集由大约十个区域服务器组成,每个区域服务器上都包含1000多个区域。它看起来不太好,因此日志文件会不断发出警告 “区域总数已接近上限1000。请考虑查看http://hbase.apache.org/book.html#ops.regionmgt” 。但是该集群一直运行良好,无一例外。
我参考官方文档添加了以下描述:
如果以几乎相同的速率填充所有区域,则全局内存使用情况会导致当您拥有太多区域时会强制进行微小的刷新,进而产生压缩。您想要做的最后一件事就是重写相同的数据数十次。一个示例是平均分配1000个区域(一个家庭),让我们考虑一下5GB的全球MemStore使用量的下限(区域服务器将有很多堆)。一旦达到5GB,它将强制刷新最大区域,这时他们几乎应该都拥有约5MB的数据,以便刷新该数量。稍后插入5MB,它将刷新另一个区域,该区域现在将有5MB以上的数据,依此类推。 这是目前限制区域数量的主要因素;
但是我不明白为什么这可能是主要的限制因素。如果将那些小的内存存储区一一清除,将会带来什么影响?
答案 0 :(得分:0)
来自Kevin O'Dell的Book Architecting HBase应用程序: 第14章:“这些压缩将导致集群过度混乱,从而影响性能。触发特定操作(自动刷新,强制刷新和用户要求压缩)后,如果需要,HBase将开始压缩。当许多压缩并行运行时,称为压缩风暴。”
我希望现在可以清除