solr系列4——solr集群

solrcloud 集群搭建(集成tomcat)

環境:JDK1.7.79 、 zookeeper3.4.8 、 solr(4.10.3) 、 tomcat7

zookeeper tomcat solr
192.168.58.145 192.168.58.145:8080 192.168.58.145
192.168.58.146 192.168.58.146:8080 192.168.58.146
192.168.58.147 192.168.58.147:8080 192.168.58.147
192.168.58.148:8080 192.168.58.148
  • jdk安裝(http://www.lxweimin.com/p/31e6ae0f17e2
  • zookeeper集群搭建(http://www.lxweimin.com/p/47bccd4306d1
  • solr集群搭建
    • 安裝solr(和單機版一致)
      • 創建solrcloud,solrhome文件夾

        mkdir /usr/local/solrcloud && cd /usr/local/solrcloud && mkdir solrhome
        - 解壓tomcatsolrsolrcloud
        > cd /usr/local/software/ && tar -zxvf apache-tomcat-7.0.68.tar.gz -C /usr/local/solrcloud/ && tar -zxvf solr-4.10.3.tgz.tar -C /usr/local/solrcloud/ && cd /usr/local/solrcloud/ && mv apache-tomcat-7.0.68 tomcat && mv solr-4.10.3 solr && ll
        - 拷貝solr-4.10.3.wartomcatwebapps下,解壓solr-4.10.3.war
        > cd /usr/local/solrcloud/tomcat/webapps && cp /usr/local/solrcloud/solr/dist/solr-4.10.3.war . && unzip solr-4.10.3.war -d solr && rm -rf solr-4.10.3.war
        - 拷貝solr日志jartomcatsolrlib
        > cp /usr/local/solrcloud/solr/example/lib/ext/* /usr/local/solrcloud/tomcat/webapps/solr/WEB-INF/lib/
        - 拷貝log4j.properties文件到tomcatsolrclasses
        > mkdir /usr/local/solrcloud/tomcat/webapps/solr/WEB-INF/classes && cp /usr/local/solrcloud/solr/example/resources/log4j.properties /usr/local/solrcloud/tomcat/webapps/solr/WEB-INF/classes/
        - 拷貝Solr Home數據文件
        > cp -ri /usr/local/solrcloud/solr/example/solr/* /usr/local/solrcloud/solrhome/
        - 編輯solrweb.xml文件,指定solrhome
        > 添加如下配置:
        > xml <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/usr/local/solrcloud/solrhome</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
        如圖:

        設置solrhome.png

        - 單機版到此完畢,只需將整個solrcloud拷貝到其他節點,即可完成其他節點的單機版
        - 啟動tomcat,預覽

    • solr集群部署
      • 有了上面單機版的基礎,接下來就是節點之間通過zookeeper關聯了
      • 啟動zookeeper集群,上傳solrhome配置文件到zookeeper

        zkServer.sh start

        //命令行中執行以下命令:(只需要在啟動一個節點執行即可)
        java -classpath .:/usr/local/solrcloud/tomcat/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost zookeeper145:2181,zookeeper146:2181,zookeeper147:2181 -confdir /usr/local/solrcloud/solrhome/collection1/conf -confname myconf
        執行如圖:
        ![上傳solr配置到zookeeper.png](http://upload-images.jianshu.io/upload_images/1972470-729c6fb7a740bc95.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
        進入zookeeper終端查看數據,成功如下圖:
        ![查看solr配置上傳zookeeper是否成功.png](http://upload-images.jianshu.io/upload_images/1972470-37d89a38e977e759.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
        
      • 修改所有節點下solrhome中的solr.xml文件

        修改hosthostPort

        <solrcloud>
        <str name="host">192.168.58.145</str> //當前節點ip
        <int name="hostPort">8080</int>//tomcat端口
        <str name="hostContext">${hostContext:solr}</str>
        <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
        <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
        </solrcloud>
        如圖:
        ![修改ip及port.png](http://upload-images.jianshu.io/upload_images/1972470-7715353b092b2f4a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
        
      • solr指定zookeeper服務器地址

        vim /usr/local/solrcloud/tomcat/bin/catalina.sh
        添加如下配置:

        JAVA_OPTS="-DzkHost=zookeeper145:2181,zookeeper146:2181,zookeeper147:2181"
        
        如圖:
        
      solr配置zookeeper的-DzkHost.png
      • 配置完畢,啟動tomcat,預覽,如果集群部署成功則出現下圖紅色方框菜單項
        如圖:
        solrcloud集群.png
  • 創建一個collection(兩片,每片一主一備),創建一個collection(一片,一主三備)

    在瀏覽器中輸入以下url,回車

    // 一主一備
    http://192.168.58.145:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
    > ```java
    // 一主三備
    http://192.168.58.145:8080/solr/admin/collections?action=CREATE&name=collection1&numShards=1&replicationFactor=3
    

    如圖所示:


    solrcloud主備collection.png
  • 刪除collection
    http://192.168.58.145:8080/solr/admin/collections?action=DELETE&name=collection1
  • 參數說明
參數名 說明
name 創建集合名稱
numShards 指定集合Shard的數量
replicationFactor 指定每個Shard副本數量
action 操作(創建(CREATE)、刪除(DELETE)、重載(RELOAD))

好了,到此為止,一切都結束了

作者:逐暗者 (轉載請注明出處)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容