错误示范
每个regionserver管理过千regions,会引起如下问题:
- regionserver内存不足,频繁GC
- 合并风暴,拖慢性能
- 客户端超时,因为合并可能会涉及集群中网络的IO风暴
- 批量加载超时,因为RegionServer太忙了无法反应,可能会报出RegionTooBusyException异常
正确示范
每个regionserver管理regions建议控制在20-200个,region大小建议配置在10-20G。
官网faq:https://hbase.apache.org/book.html#faq
region个数:170.2. Determining region count and size
region大小:170.2.4. Maximum region size
不要以为限制的过小,假如以10个regionserver为例,则能存储数据量为:
10*200*20G=40000G
HDFS如果是3副本,则实际所需磁盘还要扩大3倍。
(另外,该值只是稳定运行的建议值,大于该建议值也可以运行,只是稳定性会下降,风险会增加,使用过程中做好权衡即可)
原因分析
- Region最大值设置过小
- 预分区不合理
- 小表过多(即使空表也会占用一个region)