版本:
CDH5.13.3,对应hbase1.2.0
节点:
9个工作节点,3个管理节点
主要角色分配:
9个regionserver,datanode,solr server,其中3个节点是lily hbase indexer
方案:
hbase for solr,solr存储hbase的二级索引,通过lily hbase indexer做索引自动同步
问题:
当indexer数量创建到200+的时候,发现大量的TIME_WAIT端口(3万左右),regionserver日志里一直报Retrying connect to server: xx.xx.com/ipAddress:50020. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS),把indexer删除以后,端口回复正常,hbase恢复正常
初步怀疑是此版本的hbase的多WAL与replication功能有冲突。最初配置的是3个WAL,后来修改为单个,然后重新创建出来200+的indexer,TIME_WAIT端口下降到1万左右,还是不行。
之前碰到过有人遇到大量的wal积压,原因是indexer删除某个测试索引的时候,没有删干净,导致这个关联的主表后来的wal都没有删除,大量的积压不可消费timeout。异常timeout的原因无用的索引导致的。如果自己搭建的话,建议搞清楚这个索引映射关系,按着这个链路查看timeout的源头是什么
你描述的 “当indexer数量创建200+的时候” 是指定 索引个数吗?
HBase replication有单独的队列限制,如果太多索引需要同步,可能会有一些wal排队很久才能轮到它,另外,你为什么需要同步那么多?200+表需要索引么? 网上找一下调整 replication队列什么的参数吧。
希望对你有帮助。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。