分享

Hbase region太多导致集群压力大,如何解决?

cloudcat 发表于 2017-3-8 14:29:47 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 13692
以下是我的集群信息:
时间hbase.hregion.max.filesize每台服务器 region数量  HDFS  IO集群磁盘IOcpu使用率
2016年4月2号10G
350
1.3GM/s135M/s
15%
2016年4月3号512M
350
80M/s120M/s
16%
2017年3月5号512M
970
600M/s300M/s
60%


去年4月2号,发现 HDFS IO太高,所以设置hbase.hregion.max.filesize=512M,HDFS IO 就降低了,系统也很稳定。
到现在数据量大了,每台服务器region达到1000,导致集群磁盘IO很高,这样cpu也会很高了,查询也变慢了。我查了linux io,发现大部分都是hbase读取数据造成的。

我知道合并region可以提高集群效率。现在我有一个问题,如果我设置hbase.hregion.max.filesize=2G,重启动CDH集群

1、 系统会帮我自动合并,把4个512M的region合并成一个2G的吗?
2、如果CDH集群不能自动合并,我知道手动合并,但是手动合并每次只能合并两个。我hbase总的region数目达到5000多个,所以不可能用手动合并方法?

如果CDH自动合并,那就再好不过了,不知道我的想法是否能实现?

已有(1)人评论

跳转到指定楼层
fylanyu 发表于 2017-3-8 15:58:33
楼主既然调整过,那相信应该清楚,是否会合并。个人认为系统不会自动合并
还可以调整下hbase.regionserver.handler.count参数
regionserver处理IO请求的线程数
线上配置:适当调大
默认配置:10

hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB,比如大的put、使用缓存的scans)的时候,如果该值设置过大则会占用过多的内存,导致频繁的GC,或者出现OutOfMemory,因此该值不是越大越好。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条