ubuntu部署solrCloud集群

一、宿主机安装docker

1)apt update

切换阿里源速度会更快

1.备份原文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

 2.直接删除souces.list 然后echo重写

rm /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" > /etc/apt/sources.list

2)

#安装curl
apt install curl
#安装docker
curl -fsSL https://get.docker.com/ | sh
#查看版本
docker -v

二、创建docker镜像

1)在/home下创建文件夹Dockerfile

mkdir  /home/Dockerfile

2)进入Dockerfile,创建Dockerfile文件

cd /home/Dockerfile
vi Dockerfile

Dockerfile: 

FROM ubuntu
#sshd
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" > /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y openssh-server
RUN apt-get install vim -y
RUN apt-get install net-tools -y
RUN apt-get install lsof -y
RUN mkdir /var/run/sshd
RUN echo 'root:111' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config

# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

#jdk1.8
# make a new directory to store the jdk files
RUN mkdir /usr/local/java
ADD jdk-8u281-linux-x64.tar.gz /usr/local/java/
RUN ln -s /usr/local/java/jdk1.8.0_281 /usr/local/java/jdk
ENV JAVA_HOME /usr/local/java/jdk
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH

#解决ssh连接后环境变量无效的问题
RUN sed -i '2a export $(cat /proc/1/environ |tr '"'"'\0'"'"' '"'"'\\n'"'"' | xargs)' /etc/profile

#zookeeper
ADD zookeeper-3.4.6.tar.gz /usr/local/
RUN mkdir -p /home/zookeeper/data
RUN mkdir -p /home/zookeeper/log
RUN cp /usr/local/zookeeper-3.4.6/conf/zoo_sample.cfg /usr/local/zookeeper-3.4.6/conf/zoo.cfg
RUN sed -i 's/dataDir=\/tmp\/zookeeper/dataDir=\/home\/zookeeper\/data/' /usr/local/zookeeper-3.4.6/conf/zoo.cfg
RUN sed -i 13a\dataLogDir=/home/zookeeper/log /usr/local/zookeeper-3.4.6/conf/zoo.cfg
RUN sed -i '$aserver.1=172.18.0.11:2888:3888' /usr/local/zookeeper-3.4.6/conf/zoo.cfg
RUN sed -i '$aserver.2=172.18.0.12:2888:3888' /usr/local/zookeeper-3.4.6/conf/zoo.cfg
RUN sed -i '$aserver.3=172.18.0.13:2888:3888' /usr/local/zookeeper-3.4.6/conf/zoo.cfg
RUN cd /home/zookeeper/data;echo 1 >>myid

#solr
ADD solr-6.6.0.tgz /usr/local/
RUN mkdir -p /usr/local/solrCloud/solr_cloud_home
RUN cp -r /usr/local/solr-6.6.0/server/solr/* /usr/local/solrCloud/solr_cloud_home/
RUN mkdir -p /usr/local/solrCloud/solr_cloud_collection/cloud_core;cp -r /usr/local/solr-6.6.0/example/example-DIH/solr/solr/* /usr/local/solrCloud/solr_cloud_collection/cloud_core/

#ik分词器
COPY ik-analyzer-solr5-5.4.0.jar /usr/local/solr-6.6.0/server/solr-webapp/webapp/WEB-INF/lib/
RUN mkdir -p /usr/local/solr-6.6.0/server/solr-webapp/webapp/WEB-INF/classes
COPY ext.dic /usr/local/solr-6.6.0/server/solr-webapp/webapp/WEB-INF/classes/
COPY IKAnalyzer.cfg.xml /usr/local/solr-6.6.0/server/solr-webapp/webapp/WEB-INF/classes/
COPY stopword.dic /usr/local/solr-6.6.0/server/solr-webapp/webapp/WEB-INF/classes/
RUN sed  -i '304i <fieldType name="text_ik" class="solr.TextField">\n    <analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer" />\n    <analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer" />\n</fieldType>'  /usr/local/solr-6.6.0/example/example-DIH/solr/solr/conf/managed-schema
ENV NOTVISIBLE "in users profile"

EXPOSE 22

CMD ["/usr/sbin/sshd", "-D"]

3)复制jdk1.8_281、zookeeper-3.4.6、solr-6.6.0以及IK分词器相关文件至Dockerfile同级目录下

下载地址

http://archive.apache.org/dist/lucene/solr/6.6.0/solr-6.6.0.tgz
http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

gorilla上述完整打包地址:http://10.196.80.159:5000/sharing/Ra6D4VbXu (非学弟学妹请忽略)

4)构建image

docker build -t solr .

三、创建容器

1) 配置宿主机的hosts文件,以便用ssh登录容器

vi /etc/hosts

172.18.0.11 server1
172.18.0.12 server2
172.18.0.13 server3

2)创建自定义网络

docker network create --subnet=172.18.0.0/16 search_network

3)  创建容器

docker run -d --name server1 --net search_network --ip 172.18.0.11 -p 22 solr   /usr/sbin/sshd -D
docker run -d --name server2 --net search_network --ip 172.18.0.12 -p 22 solr   /usr/sbin/sshd -D
docker run -d --name server3 --net search_network --ip 172.18.0.13 -p 22 solr   /usr/sbin/sshd -D

合并命令 

docker run -d --name server1 --net search_network --ip 172.18.0.11 -p 22 solr   /usr/sbin/sshd -D;docker run -d --name server2 --net search_network --ip 172.18.0.12 -p 22 solr   /usr/sbin/sshd -D;docker run -d --name server3 --net search_network --ip 172.18.0.13 -p 22 solr   /usr/sbin/sshd -D

4)进入每个容器修改相应server的zookeeper ID,如server1就是id为1,server2就是id为2

#提示输入密码,默认都是3个1
ssh server1

#进入自建zookeeper的data文件夹
cd /home/zookeeper/data

#进行编辑id
vi myid 
 

 

四、启动server1、2、3的zookeeper

ssh server1

/usr/local/zookeeper-3.4.6/bin/zkServer.sh start

 五、启动server1、2、3的solr

ssh server1

/usr/local/solr-6.6.0/bin/solr start -cloud -p 8983 -s "/usr/local/solrCloud/solr_cloud_home/" -z "172.18.0.11:2181,172.18.0.12:2181,172.18.0.13:2181" -force

访问http://172.18.0.11:8983/solr,启动成功即下图

六、在容器server1上创建Collection(只需要在一台solr节点上操作)

ssh server1

/usr/local/solr-6.6.0/bin/solr create_collection -c cloudsuite_web_search -shards 3 -replicationFactor 3 -d /usr/local/solrCloud/solr_cloud_collection/cloud_core/conf -p 8983 -force

继续访问http://172.18.0.11:8983/solr,点开cloud即可出现集群图

七、上传配置文件到Zookeeper(随便哪个server上传一次即可)

cd /usr/local/solr-6.6.0/server/scripts/cloud-scripts
./zkcli.sh -zkhost 172.18.0.11:2181,172.18.0.12:2181,172.18.0.13:2181 -cmd upconfig -confdir /usr/local/solrCloud/solr_cloud_collection/cloud_core/conf -confname cloudsuite_web_search 

输入命令无任何反应就成功,之后访问http://localhost:8983/solr/#/~collections/cloudsuite_web_search,点击Reload重新加载

 

然后点击左侧菜单的第一个下拉框选中cloudsuite_web_search,点击Files查看schema.xml是否更改成功

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿S先森丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值