1. 程式人生 > >Solr 7.5.0叢集搭建

Solr 7.5.0叢集搭建

章節目錄

一:solrcloud簡介                            二:搭建準備工作

三:偽叢集搭建                               四:叢集搭建

一:solrcloud簡介

1:什麼是solrcloud?

SolrCloud(solr 雲)是Solr提供的分散式搜尋方案,當你需要大規模,容錯,分散式索引和檢索能力時使用 SolrCloud當一個系統的索引資料量少的時候是不需要使用SolrCloud的,當索引量很大,搜尋請求併發很高,這時需要使用SolrCloud來滿足這些需求

2:solrcloud的結構(網盜)

二:搭建準備工作

1:準備java環境

zookeeper是用Java編寫的,執行在Java環境上,因此,在部署zk的機器上需要安裝Java執行環境。為了正常執行zk,我們需要JRE1.6或者以上的版本。

2:下載solr、zookeeper安裝包

zookeeper-3.4.12.tar.gz、solr-7.5.0.tgz 

zookeeper:zk下載地址

3:上傳解壓、重新命名

tar -zxvf zookeeper-3.4.12.tar.gz #解壓zookeeper
tar -zxvf solr-7.5.0.tgz          #解壓solr
mv zookeeper-3.4.12 zookeeper  #重新命名zookeeper
mv solr-7.5.0 solr             #重新命名solr

三:偽solr叢集搭建(一臺伺服器)

☛ zookeeper叢集搭建 ☚

1:複製三份zookeeper,分別為zk1,zk2,zk3

cp -r zookeeper zk1
cp -r zookeeper zk2
cp -r zookeeper zk3

2:zk1,zk2,zk3目錄下新建資料目錄data日誌目錄log

cd zk1    #zk2、zk3操作類同
mkdir data
mkdir log

3:zk1/data,zk2/data,zk3/data目錄下建立zookeeper標識檔案 myid,並設定標識id

cd zk1/data/
touch myid
echo 1 > myid    #設定zk1的標識id為1,zk2、zk3操作類同,只是zk2的標識id設定為2,zk3的標識id設定為3 

4:建立zk1、zk2、zk3的配置檔案

cd zk1/conf                  #zk2、zk3操作類同
mv zoo_sample.cfg zoo.cfg

5:修改zk1、zk2、zk3的配置檔案zoo.cfg

zk1為例:

▶▶ 修改dataDir和clientPort引數
# 配置zookeeper資料目錄
dataDir=/usr/local/soft/zk1/data
# 配置zookeeper埠
clientPort=2181

▶▶ 新增dataLogDir和server.id引數

# 配置zookeeper的日誌目錄
dataLogDir=/usr/local/soft/zk1/log
# 配置zookeeper叢集   server.標識id = ip:通訊埠:投票選舉埠
server.1=192.168.1.211:2881:3881
server.2=192.168.1.211:2882:3882
server.3=192.168.1.211:2883:3883

zk2:

dataDir=/usr/local/soft/zk2/data
dataLogDir=/usr/local/soft/zk2/log
clientPort=2182
server.1=192.168.1.211:2881:3881
server.2=192.168.1.211:2882:3882
server.3=192.168.1.211:2883:3883

zk3:

dataDir=/usr/local/soft/zk3/data
dataLogDir=/usr/local/soft/zk3/log
clientPort=2183
server.1=192.168.1.211:2881:3881
server.2=192.168.1.211:2882:3882
server.3=192.168.1.211:2883:3883

6:zk1、zk2、zk3的啟動,停止,檢視狀態指令碼

▶▶ 啟動    zk_all_start.sh

/usr/local/soft/zk1/bin/zkServer.sh start
/usr/local/soft/zk2/bin/zkServer.sh start
/usr/local/soft/zk3/bin/zkServer.sh start

▶▶ 停止   zk_all_stop.sh

/usr/local/soft/zk1/bin/zkServer.sh stop
/usr/local/soft/zk2/bin/zkServer.sh stop
/usr/local/soft/zk3/bin/zkServer.sh stop

▶▶ 檢視狀態  zk_all_status.sh

/usr/local/soft/zk1/bin/zkServer.sh status
/usr/local/soft/zk2/bin/zkServer.sh status
/usr/local/soft/zk3/bin/zkServer.sh status

☛ solrcloud搭建 ☚

1:複製四份solr,分別為solr1、solr2、solr3、solr4

2:solr1、solr2、solr3、solr4 修改solr.in.sh(solr/bin/solr.in.sh)配置

#讓solr關聯zookeeper
ZK_HOST="192.168.1.211:2181,192.168.1.211:2182,192.168.1.211:2183"
#solr主機ip地址
SOLR_HOST="192.168.1.211"
#更改埠分別為8981,solr2埠為8982,solr3埠為8983,solr4埠為8984
SOLR_PORT=8981

3:solr1、solr2、solr3、solr4啟動,停止指令碼

▶▶ 啟動    solr_all_start.sh

/usr/local/soft/solr1/bin/solr start -force
/usr/local/soft/solr2/bin/solr start -force
/usr/local/soft/solr3/bin/solr start -force
/usr/local/soft/solr4/bin/solr start -force

▶▶ 停止   solr_all_stop.sh

/usr/local/soft/solr1/bin/solr stop
/usr/local/soft/solr2/bin/solr stop
/usr/local/soft/solr3/bin/solr stop
/usr/local/soft/solr4/bin/solr stop

☛ 啟動zk叢集、solrcloud,建立collection ☚

1:建立collecion

./zk_all_start.sh     #啟動zookeeper叢集
./solr_all_start.sh   #啟動solrcloud
cd solr1/bin/         #進入solrcloud其中任意一個節點solr的bin目錄


#-s 分片個數、-rf副本個數
./solr create -c core1-s 2 -rf 2 -force  #建立集合,指定2個分片、2個副本

2:訪問solrcloud任意一個節點伺服器,檢視collection叢集

☛ 上傳solr配置檔案到zookeeper,統一管理 ☚  

1:使用 zkcli.sh 命令上傳 , solr/server/scripts/cloud-scripts目錄下

#zkhost:指定zookeeper叢集
#condir: 指定要上傳的檔案  
#confname: 命名上傳zk之後的檔案

./zkcli.sh -zkhost 192.168.1.211:2181,192.168.1.211:2182,192.168.1.211:2183 -cmd upconfig -confdir /usr/local/soft/solr1/server/solr/configsets/_default/conf/ -confname solrconfig

:2:登入zk客戶端,檢視配置檔案

cd /usr/local/soft/zk1/bin   #進入zk的bin目錄
./zkCli.sh                   #連線客戶端

連線客戶端之後,使用 ls path檢視檔案 ,更多zk操作命令使用help進行檢視

四:solr叢集搭建

思路:先在一臺伺服器上搭建好zookeeper、solr,然後使用虛擬機器克隆複製兩份,搭建成叢集。

☛ 安裝zookeeper ☚  

1:解壓、重新命名

tar -zxvf zookeeper-3.4.12.tar.gz

mv zookeeper-3.4.12 zookeeper

2:zookeeper目錄下新建資料目錄data、日誌目錄log

cd zookeeper
mkdir data
mkdir log

3:zookeeper/data目錄下建立zookeeper標識檔案 myid,並設定標識id

cd zookeeper/data/
touch myid
echo 1 > myid    #設定zookeeper的標識id為1

4:建立zookeeper的配置檔案

cd zookeeper/conf                 
mv zoo_sample.cfg zoo.cfg

5:修改zookeeper配置檔案zoo.cfg

▶▶ 修改dataDir和clientPort引數
# 配置zookeeper資料目錄
dataDir=/usr/local/soft/zookeeper/data
# 配置zookeeper埠
clientPort=2181

▶▶ 新增dataLogDir和server.id引數

# 配置zookeeper的日誌目錄
dataLogDir=/usr/local/soft/zookeeper/log
# 配置zookeeper叢集   server.標識id = ip:通訊埠:投票選舉埠
server.1=192.168.1.211:2881:3881
server.2=192.168.1.212:2882:3882
server.3=192.168.1.213:2883:3883


☛ solr安裝 ☚  

1:解壓、重新命名

tar -zxvf solr-7.5.0.tgz

mv solr-7.5.0 solr

2:修改solr.in.sh(solr/bin/solr.in.sh)配置

#讓solr關聯zookeeper
ZK_HOST="192.168.1.211:2181,192.168.1.212:2181,192.168.1.213:2181"

☛ 複製虛擬機器 ☚  

1:先關閉虛擬機器,選中要克隆的虛擬機器,右擊->管理->克隆,按圖操作

 

2:修改兩臺伺服器的IP  和 zookeeper的標識ID

▶▶ 修改伺服器的IP分別為

192.168.1.212

192.168.1.213

▶▶ 修改zookeeper的標識ID

修改192.168.1.212的myid檔案內容為2

修改192.168.1.213的myid檔案內容為3

☛ 建立collection ☚  

1:啟動三臺伺服器的zookeeper

2:啟動三臺伺服器的solr

3:選擇任意一個伺服器的solr

cd solr/bin/        #進入solrcloud其中任意一個節點solr的bin目錄
 
 
#-s 分片個數、-rf副本個數
./solr create -c mote -s 2 -rf 2 -force   #建立集合,指定2個分片、2個副本


4:訪問solrcloud任意一個節點伺服器,檢視collection叢集

5:上傳solr配置檔案到zookeeper

使用 zkcli.sh(solr/server/scripts/cloud-scripts/) 命令上傳

#zkhost:指定zookeeper叢集
#condir: 指定要上傳的檔案  
#confname: 命名上傳zk之後的檔案

./zkcli.sh -zkhost 192.168.1.211:2181,192.168.1.212:2181,192.168.1.213:2181 -cmd upconfig -confdir /usr/local/soft/solr/server/solr/configsets/_default/conf/ -confname solrconfig