一、准備工作
1.系統及軟件版本
系統版本:centos6.4、zookeeper版本:zookeeper-3.4.8、solr版本:solr-5.5.3
2.安裝3台虛擬機
虛擬機ip 192.168.17.142,192.168.17.143,192.168.17.144
3.給每台機器安裝jdk
4.創建data目錄並上傳zookeeper-3.4.8和solr-5.5.3至data下(每台機器均如此)
mkdir /data
二、zookeeper集群安裝
1.解壓zookeeper
tar -zxvf zookeeper-3.4.8.tar.gz
2.創建 data和log目錄用於存放數據
mkdir zookeeper-3.4.8/data
mkdir zookeeper-3.4.8/log
3.拷貝zookeeper配制文件zoo_sample.cfg
cp conf/zoo_sample.cfg conf/zoo.cfg
4.修改配置文件 zoo.cfg
vi conf/zoo.cfg
加入如下如內容:
dataDir=/data/zookeeper-3.4.8/data dataLogDir=/data/zookeeper-3.4.8/log server.1=192.168.17.142:2888:3888 server.2=192.168.17.143:2888:3888 server.3=192.168.17.144:2888:3888
5.在zookeeper中的data下創建myid 並寫入對應的數字
注意:在myid要對應,在192.168.17.142服務器上的myid 數字為1,在192.168.17.143服務器上的myid 數字為2,在192.168.17.144服務器上的myid 數字為3。這些數字可以任意 但要和zoo.cfg中的servder.數字中的數字一致。
6.開啟zookeeper端口
/sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 2888 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 3888 -j ACCEPT
7.保存修改並重啟防火牆
/etc/rc.d/init.d/iptables save #將更改進行保存
/etc/init.d/iptables restart #重啟防火牆以便改動生效
8.啟動zookeeper集群
進入 zookeeper中的bin目錄
./zkServer.sh start
查看集群狀態
./zkServer.sh status 剛啟動可能會有錯誤,集群中其他節點一並起來后就正常了
./zkServer.sh stop 停止
./zkServer.sh restart 重啟
./zkCli.sh 連接zookeeper集群
9.安裝成功的結果如下 一個 leader 2個follower
三、solr集群的搭建
1.解壓solr
tar -zxvf solr-5.5.3.tgz
2.修改bin下solr.in.sh文件
ZK_HOST="192.168.17.142:2181,192.168.17.143:2181,192.168.617.144:2181"
去掉 ZK_CLIENT_TIMEOUT 的注釋
3.上傳mysql及ik中文分詞器到 /data/solr-5.5.3/server/solr-webapp/webapp/WEB-INF/lib/下中文分詞器的擴展分詞等配置文件 上傳到 /data/solr-5.5.3/server/solr-webapp/webapp/WEB-INF/classes (classes 目錄需要自己創建)
4.創建solrhome目錄(用於存放上傳的配置文件)及拷貝配置文件
mkdir /data/solrhome
mkdir /data/solrhome/myconf
cp -r /data/solr-5.5.3/example/example-DIH/solr/solr/conf /data/solrhome/myconf
5.修改myconf中conf下的solrconfig.xml及managed-schema 參考 這個。。。。(這里不做說明)
6.上傳配置文件到zookeeper(在/data/solr-.5.3/server/scripts/cloud-scripts/zkcli.sh 同樣可以上傳)
進入zookeeper的bin下
./zkcli.sh -zkhost 192.168.17.142:2181,192.168.17.143:2181,192.168.17.144:2181 -cmd upconfig -confdir /data/solrhome/myconf/conf/ -confname test (上傳文件夾)
-confdir:這個指的是 本地上傳的文件位置
-confname:上傳后在zookeeper中的節點名稱
./zkcli.sh -zkhost 192.168.17.142:2181,192.168.17.143:2181,192.168.617.144:2181 -cmd putfile /configs/test/data-config.xml /data/solrhome/myconf/conf/data-config.xml (上傳單個文件)
參數說明 putfile 后 第一個/configs/test/data-config.xml 指的是 zookeeper中的配置文件 , /data/solrhome/myconf/conf/data-config.xml這個是本地文件路徑
注意: 單個文件上傳先要刪除,不然會報錯。
7.zookeeper集群操作上傳的文件
進入zookeeper的bin下
./zkCli.sh 連接zookeeper集群
ls /configs/myconf 查看上傳的配置文件
delete /configs/myconf/solrconfig.xml 刪除文件
delete /configs/myconf 刪除空文件夾
get /configs/myconf/solrconfig.xml 查看文件內容
rmr /configs/myconf 遞歸刪除(慎重使用)
8.啟動solr集群
進入 solr-5.5.3下
./bin/solr restart
9.操作collection
a.創建collection
http://192.168.17.142:8983/solr/admin/collections?action=CREATE&name=test&numShards=3&replicationFactor=3&maxShardsPerNode=3&collection.configName=myconf
b.刪除
http://192.168.17.142:8983/solr/admin/collections?action=DELETE&name=test
c.重新加載
http://192.168.17.143:8983/solr/admin/collections?action=RELOAD&name=test
10.錯誤處理
a.創建內核時出錯。錯誤信息中ip是 192.168.17.1
處理:修改 /data/solr-5.5.3/server/solr/solr.xml 文件 添加ip
注意:為了盡可能的減少錯誤,配置文件應該先在單節點的solr中測試。沒問題后上傳到zookeeper節點中