修改zk集羣配置
如同前文
部署Zookeeper 加 solr-cloud 羣集一
部署Zookeeper 加 solr-cloud 羣集二
中 zk
統一管理集羣 colelction
下所有 core
的方法,修改 一個solrhome
下的 conf
中的 下面三個文件
solrconfig.xml
1 添加 mysql-input
的 lib
引用
<lib dir="/opt/app/ctpsp/" regex="solr-dataimporthandler-.*\.jar" />
2 添加 input
包的配置文件配置
<!-- leon add mysql-input
with
-->
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
3 這裏jar包如下:
下載地址:Data Import Request Handler
data-config.xml
這裏配置的是數據庫連接和sql全量更新、增量更新的操作
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://Ip/databaseName" user="數據庫用戶" password="數據庫密碼" batchSize="-1" />
<document name="documentName">
<entity name="entityName,這個是在solrAdmin後臺可以選的"
pk="RECORD_NUMBER"
query="全量更新語句"
deltaImportQuery="增量更新語句 '${dataimporter.RECORD_NUMBER}'">
<field column="id" name="id"></field>
<!-- 這裏注意 在solr羣集裏面id 是必須的 -->
<field column="RECORD_NUMBER" name="RECORD_NUMBER"></field>
...
...
...
<field column="COLLECT_COUNT" name="COLLECT_COUNT"></field>
</entity>
</document>
</dataConfig>
這裏注意 在solr羣集導入數據裏面 ,filed
id
是必須的,不然會報下面的錯誤, Document is missing mandatory uniqueKey field: id
,這和單機版的 Solr
有些不同。
這裏 sql
增量和全量語句中用到的 filed
,在 managed-schema
中需要配置,下面會寫,增量中用到的 '${dataimporter.RECORD_NUMBER}'
是固定寫法,用來存儲變量用於增量更新。
managed-schema
將 上面用到的 filed
在這裏配置
<field name="RECORD_NUMBER" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
...
...
...
<field name="SOLR_COMMENT" type="text_ik" indexed="true" stored="false" required="false" multiValued="false"/>
提交 dataimporthandler-conf
給 zk
集羣
這裏就不再贅述提交 conf
過程了,可以參考前面集羣配置提交配置文件的過程。同樣是只需要在一個zk節點提交 之前配置好的 solrhome
的 conf
就可以了,目的是創建一個帶 dataimporthandler
的 conf
配置文件,在 collection 導入數據時候,可以用。
導入數據
創建使用剛剛創建的 配置文件來創建一個 Collection
開始導入
查詢導入結果
可以去其他的shard 和 replica 看,應該都是有 數據了,我就不截圖了,集羣 dataimport 完成。