hbase的region太多有啥影响?

Posted

技术标签:

【中文标题】hbase的region太多有啥影响?【英文标题】:what's the impact of too many regions in hbase?hbase的region太多有什么影响? 【发布时间】:2018-10-20 08:39:09 【问题描述】:

现在我正在管理一个由大约十个区域服务器组成的小型 hbase 集群,每个区域服务器拥有超过 1000 个区域。看起来不太好,所以日志文件一直警告 ‘区域总数已接近上限1000,请考虑查看http://hbase.apache.org/book.html#ops.regionmgt’。但是集群运行了很长时间,无一例外。

我参考了官方文档添加发现如下描述:

如果您以大致相同的速率填充所有区域,则全局内存使用会在您有太多区域时强制进行微小的刷新,这反过来又会产生压缩。数十次重写相同的数据是你想要的最后一件事。一个例子是平均填充 1000 个区域(一个族),让我们考虑 5GB 的全局 MemStore 使用下限(区域服务器将有一个大堆)。一旦达到 5GB,它将强制刷新最大的区域,此时它们几乎都应该有大约 5MB 的数据,因此它将刷新该数量。稍后插入 5MB,它将刷新另一个现在将有超过 5MB 数据的区域,依此类推。 这是目前地区数量的主要限制因素

但我不明白为什么这可能是主要的限制因素。把这些小的memstore一个一个flush会有什么影响?

【问题讨论】:

【参考方案1】:

来自 Kevin O'Dell 的《Architecting HBase Application》一书: 第14章:“这些compactions会导致集群过度流失,影响性能。当触发特定操作(自动刷新、强制刷新和用户调用compactions)时,如果需要,HBase会启动compactions。当许多compactions串联运行时,它被称为压实风暴。”

我希望它现在清楚了。

【讨论】:

以上是关于hbase的region太多有啥影响?的主要内容,如果未能解决你的问题,请参考以下文章

Hbase的region合并与拆分详解

Hbase合并Region的过程中出现永久RIT的解决

hbase 的数据存储及Region变化(flush compaction spilt)和性能调优

hbase如何设置region大小啊

HBase Region Locality

hbase中啥是Region,啥是RegionServer