HBase-indexer& Solr:找不到数据

时间:2017-01-24 09:25:50

标签: indexing solr hbase

我目前正在使用hbase-indexer在solr中索引hbase。 当我执行foolowing命令来检查索引器时,

SELECT * FROM sys.dm_fts_index_keywords(DB_ID('my_db'), OBJECT_ID('my_table'))

结果说:

hbase-indexer$ bin/hbase-indexer list-indexers --zookeeper 127.0.0.1:2181

我认为hbase-indexer运行良好,如上所示,因为它显示为+ 1个正在运行的进程。(在此之前,我已经通过命令执行了hbase-indexer守护进程:〜$ bin / hbase-索引器服务器)

为了测试,我通过put命令在Hbase中插入数据并检查数据是否已插入。

但是,solr qry说:(没有记录)

我希望您分享与此相关的知识和经验。 谢谢。

myindexer
+ Lifecycle state: ACTIVE 
+ Incremental indexing state: SUBSCRIBE_AND_CONSUME
+ Batch indexing state: INACTIVE
+ SEP subscription ID: Indexer_myindexer
+ SEP subscription timestamp: 2017-01-24T13:15:48.614+09:00
+ Connection type: solr
+ Connection params:
  + solr.zk = localhost:2181/solr
  + solr.collection = tagcollect
+ Indexer config:
    222 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
  + 1 running processes
  + 0 failed processes

1 个答案:

答案 0 :(得分:2)

我们遇到了同样的问题。

正如您所说的那样,服务器实例具有良好的健康状况,以下是其无法正常工作的原因。

  • 首先,如果'提前写入日志'(WAL)被禁用(可能是出于写入性能原因),那么你的提示不会创建solr文档。

Hbase NRT索引器适用于WAL。如果它被禁用,那么它就不会创建solr文件。

  • 第二个原因可能是mophiline配置,如果它们不正确,那么它就不会创建solr文档

但是,我建议通过读取hbase数据来编写自定义mapreduce程序(或者火花作业)以索引solr文档(如果不是实时,这意味着什么时候你把数据直接放到hbase中它不会反映,在mapreduce solr indexer运行后会创建solr文件)