日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Solr 11 - Solr集群模式的部署(基于Solr 4.10.4搭建SolrCloud)

發布時間:2023/12/9 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Solr 11 - Solr集群模式的部署(基于Solr 4.10.4搭建SolrCloud) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 1 SolrCloud結構說明
  • 2 環境的安裝
    • 2.1 環境說明
    • 2.2 部署并啟動ZooKeeper集群
    • 2.3 部署Solr單機服務
    • 2.4 添加Solr的索引庫
  • 3 部署Solr集群服務(SolrCloud)
    • 3.1 啟動ZooKeeper
    • 3.2 ZooKeeper管理配置文件
    • 3.3 修改SolrCloud監聽端口
    • 3.4 關聯Solr與ZooKeeper
    • 3.5 分發SolrCloud服務
    • 3.6 啟動所有Solr服務
    • 3.7 訪問SolrCloud

1 SolrCloud結構說明

1) ZooKeeper集群:

a) ZooKeeper需要保證高可用, 需要搭建集群;

b) ZooKeeper需要進行投票和選舉機制, 最少需要三個節點;

c) ZooKeeper的三個節點, 注意修改端口號不一樣

2) Solr集群:

a) 需要四個節點(Solr應用服務器);

b) 四臺Tomcat部署4個 solr應用服務器;

c) 整個Collection分為兩個分片: 每個分片均由兩個副本組成.

2 環境的安裝

2.1 環境說明

  • OS: CentOS 7.0
  • JDK: HotSpot(TM) 1.8.0_162
  • Tomcat: 8.0.53
  • ZooKeeper: 3.4.10
  • Solr: 4.10.4

2.2 部署并啟動ZooKeeper集群

ZooKeeper集群的安裝部署, 詳細文檔參見 ZooKeeper 01 - 什么是ZooKeeper + 部署ZooKeeper集群.

2.3 部署Solr單機服務

參考Solr04 - 在Jetty和Tomcat上部署Solr單機服務, 這里通過Tomcat的虛擬環境發布Solr項目.

(1) 創建SolrCloud的發布路徑:

創建 /data/solr-cloud作為項目發布路徑, 并賦予讀寫權限:

mkdir -p /data/solr-cloud && cd /data chmod 644 solr-cloud

(2) 將apache-tomcat-8.0.53.tar.gz拷貝到/data/solr-cloud/tomcat下并解壓:

mkdir -p /data/solr-cloud/tomcat && cd /data/solr-cloud/tomcat tar -zxf apache-tomcat-8.0.53.tar.gz

(3) 解壓solr.4.10.4.tgz:

將solr.4.10.4.tgz拷貝到任意一臺服務器的/data/solr-cloud下, 解壓:

tar -zxf solr-4.10.4.tgz

(4) 找到Solr安裝包example/webapps下的solr.war包, 解壓縮:

cd /data/solr-cloud/solr-4.10.4/example/webapps # 使用jar命令解壓縮 jar -xvf solr.war solr # 解壓縮之后, 刪除solr.war包, 防止Tomcat自動解壓縮此包, 導致配置被覆蓋 rm -rf solr.war

(5) 部署Solr項目: 創建存放Solr應用的目錄, 并將解壓后的solr.war拷貝至此目錄下:

cd /data/solr-cloud mkdir -p tomcat/display/solr # 將所有文件拷貝至solr目錄下 cp -r solr-4.10.4/example/webapps tomcat/display/solr

(6) 使用Tomcat的虛擬目錄安裝: 這里沒有將Solr服務添加到Tomcat的webapps目錄下, 所以需要修改Tomcat的 $TOMCAT_HOME/conf/server.xml文件, 添加Solr的服務路徑:

說明: 這里將Solr服務部署在 /data/solr-cloud/tomcat/display/solr路徑下.

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"><!-- 配置訪問路徑, 效果為: http://ip:port/solr --><Context path="/solr" privileged="true"docBase="/data/solr-cloud/tomcat/display/solr"> <Environment name="solr/home" type="java.lang.String" override="true"value="/data/solr-cloud/tomcat/solrhome"/> </Context> <!-- ... ... --> </Host>

參數說明:

① path: 指定訪問該Web應用的名稱, 即 http://ip:8080/solr 中端口號之后的部分;
② docBase: 指定Web應用的文件路徑, 如果是war包, 必須加上后綴;
③ <Environment>節點就是設置solr/home的目錄, 用來存放各個Collection的索引文件.

(7) 配置其他文件:

a. 拷貝Solr解壓包下的log4j.properties文件至Solr服務的WEB-INF/classes下:

cd /data/solr-cloud mkdir -p tomcat/display/solr/WEB-INF/classes cp solr-4.10.4/example/resources/log4j.properties tomcat/display/solr/WEB-INF/classes

b. 拷貝Solr解壓包下example/lib/ext中的所有jar包拷貝到Solr服務的WEB-INF/lib下:

cd /data/solr-cloud cp -r solr-4.10.4/example/lib/ext/* tomcat/display/solr/WEB-INF/lib

c. 拷貝Solr解壓包下example/solr下的solr.xml至solrhome下(必須存在, 否則Solr服務將不能正常啟動):

cd /data/solr-cloud && mkdir -p tomcat/solrhome cp -r solr-4.10.4/example/solr/solr.xml tomcat/solrhome

d. 拷貝Solr解壓包下的example/solr/collection1至tomcat目錄下的solrhome中, 用作SolrCore的配置文件:

cd /data/solr-cloud cp -r solr-4.10.4/examplesolr/collection1 tomcat/solrhome

啟動Tomcat后, 訪問 http://ip:port/solr, 如果出現Solr Web管理頁面, 說明單機版Solr部署完成.

2.4 添加Solr的索引庫

(1) 在Solr的管理界面點擊[Core Admin], 再點擊[Add Core]這項, 系統提示instanceDir和dataDir必須存在, 否則將拋出如下錯誤:

new_core: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load conf for core new_core: Error loading solr config from /data/solr-cloud/tomcat/solrhome/new_core/conf/solrconfig.xml

(2) 映射solrhome的位置:

vim /data/solr-cloud/tomcat/display/solr/WEB-INF/web.xml # 刪除40行和46行的注釋, 如下: <env-entry><env-entry-name>solr/home</env-entry-name><env-entry-value>/data/solr-cloud/tomcat/solrhome</env-entry-value><env-entry-type>java.lang.String</env-entry-type> </env-entry>

(3) 重新啟動Tomcat, 發現名為collection1的SolrCore已經加載上了:

其他注意事項:

a) 如果刪除rm –rf /data/solr-cloud/tomcat/solrhome/collection1/core.properties文件, 集群啟動后就沒有collection;

b) 以后再次創建SolrCore時, 可以直接復制collection1目錄, 修改core.properties文件中的name即可.

3 部署Solr集群服務(SolrCloud)

3.1 啟動ZooKeeper

SolrCloud的部署需要依賴ZooKeeper, 需要先啟動所有ZooKeeper服務器.

3.2 ZooKeeper管理配置文件

在分布式服務中, 多采用ZooKeeper統一管理配置文件, 這里Solr使用到的配置文件主要有schema.xml、solrconfig.xml等, SolrCloud各個節點使用ZooKeeper統一管理的文件即可.

(1) 將Solr單機服務的配置文件交由ZooKeeper管理:

執行下述命令將Solr單機conf下的配置文件上傳到ZooKeeper(此命令為一條命令):

cd /data/solr-cloud/solr-4.10.4/example/scripts/cloud-scripts# 注意: 下面一長串只是一條命令, 不要太早回車哦~ sh zkcli.sh -zkhost 10.0.20.50:2181,10.0.20.51:2181,10.0.20.52:2181 -cmd upconfig -confdir /data/solr-cloud/tomcat/solrhome/collection1/conf -confname myconf

命令說明:

① zkhost: 指定ZooKeeper集群的ip及端口號, 多個之間以半角逗號隔開;
② cmd: 表示使用某個內部命令, 這里使用upconfig, 即更新配置信息;
③ confdir: 需要上傳的配置文件所在的位置;
④ confname: 自定義上傳后ZooKeeper管理的配置文件的名稱.

(2) 使用ZooKeeper的服務器查詢配置文件:

cd /data/zookeeper/zookeeper-3.4.10/bin/ sh zkCli.sh# 信息如下: ...... WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 0] ls / [configs, zookeeper] [zk: localhost:2181(CONNECTED) 1] ls /configs [myconf] [zk: localhost:2181(CONNECTED) 2] ls /configs/myconf [currency.xml, mapping-FoldToASCII.txt, protwords.txt, scripts.conf, synonyms.txt, stopwords.txt, _schema_analysis_synonyms_english.json, velocity, admin-extra.html, update-script.js, _schema_analysis_stopwords_english.json, solrconfig.xml, admin-extra.menu-top.html, elevate.xml, schema.xml, clustering, mapping-ISOLatin1Accent.txt, _rest_managed.json, xslt, spellings.txt, lang, admin-extra.menu-bottom.html] [zk: localhost:2181(CONNECTED) 3] quit Quitting... 2018-10-25 21:27:08,122 [myid:] - INFO [main:ZooKeeper@684] - Session: 0x166a788acfd0001 closed 2018-10-25 21:27:08,126 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@519] - EventThread shut down for session: 0x166a788acfd0001

3.3 修改SolrCloud監聽端口

修改每個Solr服務的/usr/local/solr-cloud/solr.xml文件中的hostPort(此端口默認為Jetty容器的訪問端口8983). 如果在catalina.sh中指定, 此處的設置將被覆蓋.

<solrcloud> <str name="host">${host:}</str> <int name="hostPort">${jetty.port:8080}</int> <str name="hostContext">${hostContext:solr}</str> <int name="zkClientTimeout">${zkClientTimeout:30000}</int> <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool> </solrcloud>

3.4 關聯Solr與ZooKeeper

即關聯Tomcat與ZooKeeper, 修改每一臺Solr服務所屬的tomcat/bin/catalina.sh, 指定ZooKeeper服務的地址:

vim /data/solr-cloud/tomcat/apache-tomcat-8.0.53/bin/catalina.sh # 在cygwin=false(大約109行)之前, 通過-DzkHost參數指定ZooKeeper的IP和端口號: JAVA_OPTS="$JAVA_OPTS -DzkHost=zoo1:2181,zoo2:2181,zoo3:2181"

可以使用vim的查找功能查找JAVA_OPTS的定義的位置: 按[Esc], 在命令模式下輸入:/cygwin, 然后回車, 按字母[n]查找下一個.

3.5 分發SolrCloud服務

cd /data scp -r solr-cloud/ 10.0.20.51:/data scp –r solr-cloud/ 10.0.21.52:/data

3.6 啟動所有Solr服務

在啟動ZooKeeper集群后, 依次啟動所有Solr服務 --- 即Tomcat.

3.7 訪問SolrCloud

訪問任意一臺Solr, 左側菜單將出現[Cloud]功能按鈕, 點擊查看, 出現下圖中的信息, 說明SolrCloud部署成功.

參考資料

solr7.3.1在CentOS7上的安裝

solrCloud+tomcat+zookeeper集群配置

版權聲明

作者: 馬瘦風

出處: 博客園 馬瘦風的博客

您的支持是對博主的極大鼓勵, 感謝您的閱讀.

本文版權歸博主所有, 歡迎轉載, 但請保留此段聲明, 并在文章頁面明顯位置給出原文鏈接, 否則博主保留追究相關人員法律責任的權利.

轉載于:https://www.cnblogs.com/shoufeng/p/9881362.html

總結

以上是生活随笔為你收集整理的Solr 11 - Solr集群模式的部署(基于Solr 4.10.4搭建SolrCloud)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。