使用ZooKeeper在SolrCloud中配置DataImportHandler

vuk*_*uky 8 lucene solr solrcloud apache-zookeeper

我有一个像这样配置的SolrCloud:探索SolrCloud,区别在于我使用的是Solr 4.0.0 Beta.配置不久:

  • 默认端口上的ZooKeeper 2181
  • Solr在不同端口上运行的3个实例

这仅用于测试目的.所需的配置是3个ZooKeeper实例(每个Solr实例一个).我设法用curl命令索引一些XML文件.

问题:

  1. 如何配置DIH /集合?我设法更改solrconfig.xml(config for dataimport-handler),在lib中添加适当的数据库连接驱动程序,但在solr admin中我得到"抱歉,没有定义dataimport-handler!" 可以在zookeeper中查看更改(我看到data_config.xml),在solr管理面板中,我可以看到solrconfig.xml的更新版本.

  2. 在Ubuntu 12.04 LTS的单台或多台机器上进行solrcloud生产部署(与之前提到的所需配置一样的somthink)的任何好教程?

任何意见,将不胜感激!提前致谢!

Shi*_*gon 5

通常,DIH配置与您使用单个Solr实例或solrCloud配置中的多个实例无关.DIH将在当前实例的Lucene索引中写入数据,然后由zooKeeper在其他实例上进行处理.

确保您的DIH具有属性配置:

在solrconfig.xml中,将加载所有必需的库.这意味着两个DIH罐子:

<lib dir="../../../dist/" regex="solr-dataimporthandler-4.3.0.jar" />
<lib dir="../../../dist/" regex="solr-dataimporthandler-extras-4.3.0.jar" />
Run Code Online (Sandbox Code Playgroud)

以及您可能需要的其他罐子(如数据库JDBC驱动程序等).

仍然在solrconfig.xml中确保声明了DIH处理程序,如下所示:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
        <str name="config">data-config.xml</str>
    </lst>
</requestHandler>
Run Code Online (Sandbox Code Playgroud)

最后,您在DIH处理程序(data-config.xml)中声明的配置文件应与solrconfig.xml位于相同的"conf"目录中,并且应具有适当的内容,例如:

<dataConfig>

<dataSource type="JdbcDataSource" name="myDataSource" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@someHost:1521:someDb" user="someUser" password="somePassword" batchSize="5000"/>  

<document name="myDoc" >
    <entity name="myDoc" dataSource="myDatasource" transformer="my.custom.Transformer" query="select col1, col2, col3 from table1 where whatever" />
</document>

</dataConfig>
Run Code Online (Sandbox Code Playgroud)