前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HBase集群服务端replication CallQueue被打满

HBase集群服务端replication CallQueue被打满

原创
作者头像
stevenxi
发布2022-08-24 10:52:37
6720
发布2022-08-24 10:52:37
举报
文章被收录于专栏:大数据分布式存储

一 问题列表及解决方案

问题1 服务端replication  CallQueue被打满

 regionserver日常信息如上图所示,很明显服务端的replication  CallQueue被打满是因为

业务侧hbase.ipc.server.max.callqueue.size使用默认值1G,建议业务修改配置 <property> <name>hbase.ipc.server.max.callqueue.size</name> <value>5368709120</value> </property>

查看服务端监控证实replication call queue确实被打满

建议业务修改以下配置项

<property> <name>hbase.regionserver.replication.handler.count</name> <value>60</value> </property>

增加目标集群的replication请求处理的线程数,业务使用的是默认值3。

梳理业务逻辑发现源集群针对每个table都建立了peer,这样存在的问题有:

1 单个HLog被多次消费

replication时源集群会在zk上创建/hbase/replication/peers/peers目录,rs启动时在对应的 rs 的 peer 子 znode 下会添加文件,

addSource 时,rs 启动时把相应 HLog 文件名添加上 preLogRoll 时,把新滚动的 HLog 添加上 FailOver 时,把挂了的 rs 的 HLog 文件名和 checkpoint 移动到相应 rs 的znode上

单RS上存在多个表,WAL都在一个HLog中,表粒度的peer会导致,单个HLog被多个znode hold,只有最后一个peer消费完成后,才会删除。 另外多次seek hlog会占用源集群的cpu和磁盘io。 建议业务将表粒度的peer修改为集群力度,具体修改如下:

add_peer '1','zk:2181:/hbase','table1;table2'

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档