快速簡單高效的搭建 SolrCloud 集羣

網上一堆複製文件、修改文件的搭建教程,看完一頓懵,總以爲瞎複製文件不安全,容易出亂子。今天看了官方文檔作下筆記,使用內嵌的 jetty 和 本身的 zookeeper 啓動集羣,但願能給網友一些幫助.node

環境:最好有兩臺 ubuntu 16 的虛擬機. 只有一臺的話應該能夠起兩個端口不同的 solr 實例, 本身折騰試試

安裝 jdk

apt update
apt install openjdk-8-jdk

安裝 zookeeper

這裏只安裝單機版, zookeeper集羣高可用按下不表, 主要研究 solr
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
tar zxvf zookeeper-3.4.9.tar.gz
cd zookeeper-3.4.9/conf
cp zoo_sample.cfg zoo.cfg
cd ../bin/
./zkServer.sh start

安裝 solr

wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/6.4.2/solr-6.4.2.tgz
tar zxvf solr-6.4.2.tgz && cd solr-6.4.2

單機啓動

說明:加 -force 是由於solr不容許使用 root 進行操做的,其餘帳戶可不加
./solr start -force

啓動後能夠直接訪問 ip:8983 便可看到 solr web 版的控制檯web

單機建立庫

./solr create -c test_core -force

上面這條命令建立了一個名爲 test_core 的 solr 庫,專業名詞叫 core, 集羣版叫 collection. 關於 solr 的術語可上網搜索參考其餘文章.apache

集羣配置

集羣中的每臺機器都要按照如下說明進行配置啓動

首先到 solr 安裝目錄的 bin 下,編輯 solr.in.sh 文件
搜索 SOLR_HOST, 取消註釋, 設置成本身的 ip
搜索 SOLR_TIMEZONE, 取消註釋, 設置成 UTC+8ubuntu

SOLR_HOST="10.4.81.19"
SOLR_TIMEZONE="UTC+8"
注意:SOLR_HOST 若是不是生產環境不推薦設置成主機名,我複製虛擬機實驗的時候因爲主機名相同經歷了一些很深的坑.

集羣啓動

./solr start -cloud -z 10.4.81.19:2181 -p 8983 -force

-cloud 參數告訴 solr 集羣方式啓動,可簡寫爲 -c
-z 參數的值換成本身 zookeeper 的地址和端口
-p 指定 solr web 啓動的端口(默認 8983)
-force 上文已經解釋過安全

集羣中每臺機器均可以使用以上命令啓動spa

圖片描述

live_nodes 節點可查看註冊到集羣中的 solr 實例code

集羣建立庫

建立庫只在集羣的一臺機子上操做便可server

./solr create_collection -c test_collection -shards 2 -replicationFactor 3 -force

-c 指定庫(collection)名稱
-shards 指定分片數量,可簡寫爲 -s ,索引數據會分佈在這些分片上
-replicationFactor 每一個分片的副本數量
-force 上文已說明xml

每一個分片上的副本數據是一致的,leader掛掉後若是不加shards.tolerant=true會致使庫的讀寫都不可用,待從新選舉出 leader 後會恢復, 默認3分鐘,能夠配置.教程

圖片描述

修改選舉時間

修改 solr 安裝目錄的 server/solr/solr.xml 文件
<solrcloud> 節點內添加一下內容,單位是毫秒

<str name="leaderVoteWait">${leaderVoteWait:10000}</str>
相關文章
相關標籤/搜索