1. 问题描述
公司使用HBase Indexer 将hbase的数据同步到solr中,使用一段时间后,发现HBase表的数据与Solr那边的数据会产生不一致的现象,具体表现一天的数据量 Solr的数据会比HBase表数据少上万甚至更多。起初是在生产环境发现该问题,后面在测试环境中验证了也发现该问题
【注】:这个现象使用了现场的部分数据集并且在HBase表创建了二级索引表的情况下会很容易重现。
2. 问题分析
基本可以断定是hbase-indexer的同步问题,HBase indexer内置会有一些监控数据,监控SepEvent事件处理次数、Solr索引添加次数、Solr索引删除次数,同时还会记录一些操作失败的次数3. hbase-index开启JMX
2.1. 修改hbase-indexer-env.sh 文件,开启JMX
[root@node4 conf]# pwd
/opt/hbase-indexer/latest/conf
[root@node4 conf]# ls
hbase-indexer-env.sh hbase-indexer-site.xml log4j.properties
[root@node4 conf]# vi hbase-indexer-env.sh
2.2.打开注解 修改配置:
export HBASE_INDEXER_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
export HBASE_INDEXER_OPTS="$HBASE_INDEXER_OPTS $HBASE_INDEXER_JMX_BASE -Dcom.sun.management.jmxremote.port=10105"
保存配置 并重启hbse-indexer集群服务
4. 使用Jconsole工具连接hbase-indexer的jmx
在jdk安装目录bin/目录下找到jconsole.exe,运行并连接hbase-indexer开启的jmx,连接端口为上面hbase-indexer-env.sh设置的端口(防火墙需要关闭 或者开放端口)
5. 连接 查看hbase-indexer监控数据,选择MBean模块,查看需要的监控数据
hbase的JMX开启类似hbase-indexer
1. 配置hbase-env.sh文件
[root@node4 conf]# pwd
/usr/hdp/2.3.4.0-3485/hbase/conf
[root@node4 conf]# ls
core-site.xml hadoop-metrics2-hbase.properties hbase-env.cmd hbase-env.sh hbase-policy.xml hbase-site.xml hdfs-site.xml log4j.properties regionservers
[root@node4 conf]# vi hbase-env.sh
2.添加配置,开启JMX监听
export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10101"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10102"
export HBASE_THRIFT_OPTS="$HBASE_THRIFT_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10103"
export HBASE_ZOOKEEPER_OPTS="$HBASE_ZOOKEEPER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10104"
export HBASE_REST_OPTS="$HBASE_REST_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10105"
3.保存并重启hbase regionserver,连接JMX可以查看到相关监控数据
以上是使用Jconsole连接jmx查看监控的流程,具体的问题解决方法可参考以下文章
hbase同步到solr数据不一致问题:https://blog.youkuaiyun.com/d6619309/article/details/51579594