运维监控到消息无法增量更新索引。经定位发现hbase solr indexer未生效。

 

以前测试环境下通常是因为这个hbase-solr-indexer进程当掉了造成的。但是这一次不一样。

 

检查sepimpl的源码,发现它是伪装了一个HbaseRegionServer,把自己作为slave,然后借助HBasereplication机制,让log复制过来。它再通过write ahead log获取增量更新内容。

 

猜测是这种机制被断掉了。检查zookeeper

ls /ngdata/sep/hbase-slave/Indexer_morphlines_Test300/rs

发现这个记录

[datanode10.bjpuc1.quanshi.com,50475,1428377032454]

 

检查hbase

ls /hbase/rs

[datanode8.app.company.com,60020,1427557044871,datanode3.app.company.com,60020,1428140476654, datanode6.app.company.com,60020,1427557034896,datanode10.app.company.com,60020,1427557054164,datanode1.app.company.com,60020,1427556940973,datanode7.app.company.com,60020,1427557039934,datanode4.app.company.com,60020,1427557024791, datanode9.app.company.com,60020,1427557048966,datanode2.app.company.com,60020,1427557014498,datanode11.app.company.com,60020,1427557059497,datanode5.app.company.com,60020,1427557029513]

 

 

因此怀疑两者的同步出现问题。于是让君福帮助重建了一次增量更新配置。办法是删除原来的hbase-solr-indexer的配置,再重新add-indexer。

ls/ngdata/sep/hbase-slave/Indexer_morphlines_Test300/rs

[datanode10.app.company.com,2074,1428455398626]

 

问题得到解决。