虛擬機下 solr7.1 cloud 集群搭建 (手動解壓和官方腳本兩種方式)


准備工作:

  vmware workstation 12,OS使用的是ubuntu16.04,三台虛擬機搭建一個solr集群,zookeeper共用這三台虛擬機組成zookeeper集群。

  zookeeper的版本為3.4.10,solr版本為7.1,不使用tomcat,使用solr自帶的jetty。jdk版本為1.8.0_151。

 

第一步:虛擬機的建立

  選擇默認配置即可,內存我配置的2G一台,1CPU,網絡采用NAT,DHCP自動分配。建好一台虛擬機后,我們可以去配置一些基本環境,如Jdk等,然后使用克隆的方式,減少一些不必要的操作。

  基本配置也就是安裝openssh-server,jdk等常用環境即可。

  安裝完成的結果如下。

圖1 安裝完成后xshell下遠程連接的界面

第二步:zookeeper集群環境搭建

  下載zookeeper3.4.10,我把zookeeper解壓到了登錄用戶(我的用戶是solr)的根目錄下(我的是/home/solr/zookeeper-3.4.10),實際可根據需求自行放置在相應的目錄下即可。

   隨后我們進入zookeeper下conf目錄,復制一份cfg文件,並進行配置。

cd /zookeeper-3.4.10/conf       # 進入zookeeper config目錄
cp zoo_sample.cfg zoo.cfg       # 復制一份配置文件,並修改內容

  圖2 zoo.cfg配置文件

  對上述1.2.3.4進行說明:

  1. zookeeper的數據存放的地方(我的理解),我這里為了方便配置在Home目錄下,實際可根據需求進行配置
  2. zookeeper的端口
  3. zookeeper集群的設置,2888和3888分別是監聽和投票選舉端口,server.1 server.2 server.3后續進行說明
  4. 是一些配置參數,比如觸發事件什么,請自行百度了解相關意思。

  server.1 server.2 server.3 說明的是集群中其他zookeeper的"代號",server.后的數字的范圍為1~255

  這個數字在剛才配置文件目錄(如上述的/home/solr/zookeeper)下新建一個myid文件,里面填寫這些數字來標識身份即可,比如server.1所在的服務器的zookeeper目錄下就應該有一個myid文件,內容為1。

./zkServer.sh start   # 啟動zookeeper

  啟動zookeeper查看狀態可以看到如下內容,說明zookeeper集群搭建成功。

圖3 zookeeper follwer 狀態

圖4 zookeeper leader 狀態

第三步 solr集群的搭建(按照官方按照腳本來進行配置)

  在這里,我們先用官方的文檔中的腳本來進行安裝,將solr安裝為系統中的一個服務。

tar xzf solr-7.1.0.tgz solr-7.1.0/bin/install_solr_service.sh --strip-components=2    # 將腳本文件從包中解壓出來

sudo bash ./install_solr_service.sh solr-7.1.0.tgz  # 進行安裝solr

  在這種情況下,solr會默認安裝在/opt/solr-7.1.0/下,同時會自動建立一個/opt/solr 去鏈接/opt/solr-7.1.0,這是為了方便后續更新solr版本是,只要更換/opt/solr-7.1.0文件即可。

 同時,默認情況下,會將一些配置文件放置在/var/solr中,后續我們會用到該文件夾。

 同時,如果不存在用戶solr,會自動新建一個solr用戶,最后,該腳本會自動啟動solr。

 上述的命令采用的是默認安裝的情況,實際條件我們可以進行一些自己的配置。

  1.   -d solr的一些參數和可寫的文件存放的位置,默認為/var/solr
  2.  -i solr的解壓位置,默認為/opt/下
  3.  -p solr綁定的端口,默認為8983
  4.  -s service的名稱
  5.  -u 對應的用戶的名稱,默認為solr
  6.  -n 這個參數說明執行完成后不啟動solr

  在執行完腳本后,我們就可以用 sudo service solr [start|restart|stop|status] 等命令來控制solr。

  但是在上述情況下,我們並沒有配置solr和zookeeper之間的關系,所以啟動后不會是cloud模式,隨后,我們來配置solr。

  首先,進入/var/solr/data 目錄,修改solr.xml文件。

圖5 solr.xml 配置文件

  在這里,我們主要配置host這個參數,將host:后面填入虛擬機對應的IP,否則搭建集群的時候,cloud會顯示localhost,會引發錯誤。

  隨后,安裝腳本在默認情況下,會在/etc/default/下生成一個solr.in.sh文件,我們要修改這個文件,配置zk_Host參數(也就是zookeeper的參數)。

圖6 solr.in.sh 配置文件

  這個配置文件還有其他很多的參數,讀者可以自行去查看是如何意思,我在這里只配置了zk_host,其他都采用默認設置

  zk_host 說明了zookeeper集群的位置,可以看出來,這就是我們第一步配置的zookeeper的集群中所以節點的地址。

  配置完成后,我們就可以啟動solr。

第四步,基礎操作

  首先我們應該用zookeeper上傳一份我們自己的配置文件,放置在我們的zookeeper集群中。

root@ubuntu:/opt/solr-7.1.0/bin# ./solr zk upconfig -d [要上傳的配置文件目錄] -n [zookeeper上保存的配置文件名稱] -z [zookeeper的集群地址]

 很多教程中用的是cloud_scripts/下的zkcli.sh。實際上都是一樣的,看自己的喜好,這個文件在zookeeper下也有,可以用help來看看參數說明。

 上傳之后,我們在新建一個集合,用我們剛才上傳的配置文件,如果不指定,就會使用默認的配置文件

root@ubuntu:/opt/solr-7.1.0/bin# ./solr create-collection -c [新建集合的名字] -n [zookeeper上配置文件的名稱,上一步設置的那個n] -shards 2 [分兩塊] -replicationFactor 2 [replic數量]

  我們進入solr-cloud,就可以看到我們新建的集合,也可以看到我們solr-cloud集群已經搭載成功。

圖7 solr-cloud

第五步 直接解壓solr的配置說明

   其他配置和官方腳本安裝都一樣,核心問題就是配置文件的位置不一樣,需要特別說明。

   solr.xml在解壓后根目錄下server/solr 下

   solr.in.sh 在根目錄下的bin/下

   啟動命令要使用 -cloud -z 參數,具體請參考官方文檔。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM