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太多有啥影响?的主要内容,如果未能解决你的问题,请参考以下文章