新建hbase-indexer后通过hbase-indexer list-indexers
发现SEP subscription ID: null
并且0 running processes
,如下:
INDEXER_NAME + Lifecycle state: ACTIVE + Incremental indexing state: SUBSCRIBE_AND_CONSUME + Batch indexing state: INACTIVE + SEP subscription ID: null + SEP subscription timestamp: 2016-09-25T14:40:37.005+08:00 + Connection type: solr + Connection params: + solr.collection =COLLECTION_NAME + solr.zk = node1:2181,node2:2181,node3:2181/solr + Indexer config: 407 bytes, use -dump to see content + Indexer component factory: com.ngdata.hbaseindexer.conf.DefaultIndexerComponentFactory + Additional batch index CLI arguments: (none) + Default additional batch index CLI arguments: (none) + Processes + 0 running processes + 0 failed processes
由 可知,应该是之前配置的indexer和hbase中的连接信息并没有清理掉,又重新创建了indexer。
2. 恢复过程
- 删除indexer。
- 关闭hbase-solr-indexer服务,solr服务,关闭hbase集群
- 清理zookeeper上和indexer有关(/ngdata),和hbase有关(/hbase)(放心删除/hbase!zk下的目录会恢复的,并且表数据不会收到影响)
- 重新启动hbase集群,solrcloud, hbase-solr-indexer服务。
- 重新开始配置Lily hbase indexer。
3. 总结
删除solr的zk目录/solr,再启动solr会报错。删除以后恢复过来的solr在zk上只剩下这些节点ls /solr [solr, clusterprops.json, zkdtsm]
ls /solr [configs, clusterprops.json, clusterstate.json, aliases.json, solr.xml, solr, live_nodes, overseer, overseer_elect, collections, zkdtsm]
上面这问题和solr没什么关系,主要是没将hbase上面的东西删除干净导致,无需删除/solr就可以恢复。 4. 其他相关问题
4.1 Hbase启动失败
报错信息如下:
HRegionServer ABORTING region server master,60020,1506502095106: Unhandled: Failed replication handler createjava.io.IOException: Failed replication handler createHRegionServer Failed initjava.io.IOException: Failed replication handler create
查找zk目录/hbase/rs
中的master,60020,1506502095106
失败,建议关闭HBase集群,删除zk的/hbase目录。(不过这样如果配置了hbase-indexer可能要重建)