搭建SolrCloud模式的集群,使用內置的Jetty運行
一、硬件環境
假設有4台機,IP及主機名如下:
192.168.100.105 c1 192.168.100.110 c2 192.168.100.115 c3 192.168.100.120 c4
二、軟件環境
操作系統:Ubuntu Server 18.04
JDK:1.8.0
1.安裝JDK
https://www.cnblogs.com/live41/p/14235891.html
2.安裝ZooKeeper
https://www.cnblogs.com/live41/p/15522363.html
安裝完后,在3台機分別啟動ZooKeeper
zkServer.sh start
3.Jetty
Jetty是Solr內置的,不需要另外安裝
三、搭建Solr集群(SolrCloud模式)
* 先登錄root賬號再進行以下操作
* 下面第2-7點需要在所有機器都操作一次
假定Solr安裝在/home/目錄
1.下載
https://solr.apache.org/downloads.html
下載最新版,這里下載的是8.11.0,文件名是solr-8.11.0.tgz
2.上傳到服務器
分別上傳到4台機,這里放在/home/目錄
cd /home
rz
3.解壓
cd /home
tar -xvf solr-8.11.0.tgz mv solr-8.11.0 solr
4.配置環境變量
vim ~/.bashrc
添加以下內容:
export PATH=$PATH:/home/solr/bin
保存后,更新環境變量:
source ~/.bashrc
5.配置solr.in.sh
cd /home/solr/bin vim solr.in.sh
反注釋或添加以下屬性:
SOLR_JAVA_HOME="/usr/bin/jdk1.8.0" SOLR_JAVA_MEM="-Xms512m -Xmx1024m" SOLR_TIMEZONE="Asia/Shanghai" ZK_HOST="c1:2181,c2:2181,c3:2181" SOLR_HOST="c1"
* SOLR_HOST屬性是每台機填自己的主機名或IP,例如,在c1機填c1或192.168.100.105,在c2機填c2或192.168.100.110
6.配置solr.xml
vim /solr/server/solr/solr.xml
修改或添加以下屬性:
<str name="host">c1</str> <int name="hostPort">8983</int> <str name="zkHost">c1:2181,c2:2181,c3:2181</str>
host屬性除了IP,也可以用主機名,例如c1、c2、……
host屬性在每台機要配置該機器的IP,例如在c1機要配置c1或192.168.100.105,在c2機要配置c2或192.168.100.110
hostPost屬性是對應服務端(Jetty或Tomcat)監聽的端口,默認是8983
zkHost屬性是ZooKeeper全部節點的地址,用逗號隔開
7.啟動
#新版
solr start -cloud -force
#舊版,不建議使用
solr start -cloud -z c1:2181 -p 8983 -force
-cloud是聲明以SolrCloud集群模式運行Solr,可以簡寫為-c
-z后面是ZooKeeper的其中一個入口,這里用c1
-p后面是Solr的Web管理平台的訪問端口
-force是因為Solr不允許使用root用戶進行操作,如果當前使用的是其它賬戶,可不加-force
* 關閉的命令是:
solr stop
8.測試
(1) 查看Web管理平台
在瀏覽器打開
http://192.168.100.105:8983
(2) 創建collection
創建一個collection,名字為clotho,分片6個,副本3個
solr create_collection -c clotho -shards 6 -replicationFactor 3 -force