docker部署solr集羣

一、準備工作

1.四臺服務器:172.16.6.31、172.16.6.32、172.16.6.33、172.16.6.34 並且都按裝了docker環境
2.jre1.8以上的linux版本
3.已經部署好的solr單機版:solr-tomcat 以及solr_home

二、搭建zookeeper集羣

1、下載zookeeper

在三個服務器:172.16.6.31、172.16.6.32、172.16.6.33下載
docker pull zookeeper

2、集羣配置

首先運行一下
docker run --network host -v /data/zookeeper_data/data:/data -v /data/zookeeper_data/conf:/conf --name zk-2181 -d zookeeper

修改主機上(三個)/data/zookeeper_data/conf/zoo.cfg 配置如下:

dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true
clientPort=2181
server.1=172.16.6.31:2888:3888
server.2=172.16.6.32:2888:3888
server.3=172.16.6.33:2888:3888

修改主機上(三個)/data/zookeeper_data/data/myid:
對應上面的配置,如172.16.6.31就把myid改爲1
配置好後 重新啓動三個集羣即可

docker run  --network host -v /data/zookeeper_data/data:/data -v /data/zookeeper_data/conf:/conf  --name zk-2181 --restart always -d zookeeper

其中–network host 表示使用主機網絡,容器端口設置的是什麼對外端口就是什麼,此時-p 設置無效。

3、上傳solr集羣配置文件

在solr-7.1.0\server\scripts\cloud-scripts裏可以執行zk命令,把需要的conf傳上去就好了

zkcli.bat -zkhost 172.16.6.31:2181,172.16.6.32:2181,172.16.6.33:2181 -cmd upconfig -confdir E:\solr_new\solr-7.1.0\server\scripts\cloud-scripts\conf -confname conf_tm

三、搭建solr集羣

1、修改solr單機

修改準備好的solr-tomcat單機版,tomcat啓動文件:catalina.sh 添加配置好的zookeeper集羣配置如下:

JAVA_OPTS="-DzkHost=172.16.6.31:2181,172.16.6.32:2181,172.16.6.33:2181"

2、生成自己的solr集羣版的docker鏡像

把需要的jre solr_home solr-tomcat 準備好
Dockerfile文件:

FROM  centos
MAINTAINER baojia
ADD jdk1.8.0_151 /usr/local/jdk
ADD solr-tomcat /usr/local/solr-tomcat
ADD solr_home /usr/local/solr_home
RUN chmod -R 777 /usr/local/solr-tomcat
RUN chmod -R 777 /usr/local/solr_home
ENV JAVA_HOME /usr/local/jdk
ENV CLASSPATH .:$JAVA_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 7080
CMD ["/usr/local/solr-tomcat/bin/catalina.sh","run"]

執行docker build -t sw_solr .生成docker鏡像 :sw_solr

3、把鏡像文件和solr_home傳到其他服務器

執行

docker save -o sw_solr.tar sw_solr:latest

把鏡像打包成文件
打包solr_home
tar -cvf solr_home.tar solr_home

把sw_solr.tar、 solr_home.tar 傳到其他機器上:
scp sw_solr.tar [email protected]:/usr/local
在其他服務器上解壓solr_home:
tar -xvf solr_home.tar
其他服務器加載鏡像:
docker load --input sw_solr.tar

4、修改solr_home配置,運行鏡像

修改solr_home裏的solr.xml文件 改成對應ip端口:

<str name="host">${host:172.16.6.33}</str>
    <int name="hostPort">${jetty.port:7080}</int>

最後運行鏡像:

docker run  -d -p 7080:7080 -v /usr/local/solr_home:/usr/local/solr_home  --name solr sw_solr
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章