基于Docker 分布式部署solrCloud

来源:互联网 发布:上海楼市成交数据 编辑:程序博客网 时间:2024/06/06 03:00

一、环境准备

1、安装Docker

yum install -y yum-utils device-mapper-persistent-data lvm2

2、Centos系统(未安装任何软件):

3、打包系统镜像:将本机操作系统打包成tar文件
tar –numeric-owner –exclude=/proc –exclude=/sys -cvf centos-self.tar /

4、将制作的tar文件导入docker镜像库中,并命令为: centos -self:
cat centos -self.tar | docker import - centos -self

二、创建容器solr1

1、建议使用自定义网桥,这样可以指定ip ,默认的docker0网桥无法指定ip
docker network create –subnet=172.18.0.0/16 search_network
备注:这里选取了172.18.0.0网段,也可以指定其他任意空闲的网段,search_network为自定义网桥的名字,可自己任意取名。

2、利用docker启动容器solr1,分配固定IP 172.18.0.11,并将容器的8983端口与宿主机8971进行映射,以便可以从外部访问容器
docker run -itd –name solr1 –net search_network –ip 172.18.0.11 -p 8791:8983 centos-self /bin/bash

3、进入容器solr1

# docker exec -it solr1 /bin/bash

4、切换目录,将 jdk1.8、solr6.6.1、zookeeper3.5下载到服务器的/opt文件夹中

# cd /opt

下载jdk

 # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz"

下载zookeeper 3.5.3

# wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.5.3-beta/zookeeper-3.5.3-beta.tar.gz

下载solr 6.6.1

 # wget http://mirrors.hust.edu.cn/apache/lucene/solr/6.6.1/solr-6.6.1.tgz

5、在容器server1中安装jdk1.8并配置java环境变量
创建/usr/local/java/文件夹并解压jdk

 # mkdir  -p  /usr/local/java/ # tar -zxvf jdk1.8.0_141.tar.gz -C /usr/local/java/

注:若tar -zxvf 解压失败,可将z去掉

6、向/etc/profile文件中追加下面内容:

 # vim /etc/profile    export JAVA_HOME=/usr/local/java/jdk1.8.0_144    export JRE_HOME=${JAVA_HOME}/jre    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    export PATH=$PATH:${JAVA_HOME}/bin

7、让文件生效

# source /etc/profile

8、验证java成功安装

# java –version

enter description here

三、在容器server1中安装配置zookeeper3.5.3

1、解压zookeeper 安装包到/usr/local目录中

# tar -xvf zookeeper-3.5.3-beta.tar.gz -C /usr/local/

2、创建zookeeper的data和logs目录,确保拥有读写权限

# mkdir -p /home/tank/zookeeper/data# mkdir -p /home/tank/zookeeper/log

3、将zookeeper安装目录下conf文件夹中的zoo_sample.cfg重命名为zoo.cfg

# cd /usr/local/zookeeper-3.5.3-beta/conf# mv zoo_sample.cfg zoo.cfg

4、修改zoo.cfg内容,zoo.cfg配置完后如下:

#vim zoo.cfg    # The number of milliseconds of each tick    tickTime=2000    # The number of ticks that the initial     # synchronization phase can take    initLimit=10    # The number of ticks that can pass between     # sending a request and getting an acknowledgement    syncLimit=5    # the directory where the snapshot is stored.    # do not use /tmp for storage, /tmp here is just     # example sakes.    dataDir=/home/tank/zookeeper/data    dataLogDir=/home/tank/zookeeper/log    # the port at which the clients will connect    clientPort=2181    # the maximum number of client connections.    # increase this if you need to handle more clients    #maxClientCnxns=60    #    # Be sure to read the maintenance section of the     # administrator guide before turning on autopurge.    #    # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance    #    # The number of snapshots to retain in dataDir    #autopurge.snapRetainCount=3    # Purge task interval in hours    # Set to "0" to disable auto purge feature    #autopurge.purgeInterval=1    server.1=172.18.0.11:2888:3888    server.2=172.18.0.12:2888:3888

5、进入/home/tank/zookeeper/data中,新建myid文件,写入1

# cd /home/tank/zookeeper/data# echo 1 >> myid

enter description here
注:其他节点的myid内容应分别是server.1的

四、在solr1容器中安装配置solr-6.6.1

1、解压solr-6.6.1.tgz到/usr/local目录下

# tar -xvf solr-6.6.1.tgz -C /usr/local/

2、创建solrCloud根目录solr_cloud_home文件夹

# mkdir -p /usr/local/solrCloud/solr_cloud_home

3、复制/usr/local/solr-6.6.0/server/solr/目录下的文件到solr_cloud_home中

# cp -r /usr/local/solr-6.6.1/server/solr/* /usr/local/solrCloud/solr_cloud_home/

4、查看solr_cloud_home目录,如图所示:

# ll /usr/local/solrCloud/solr_cloud_home/

enter description here

5、创建配置存放目录solr_cloud_collection文件夹

# mkdir -p /usr/local/solrCloud/solr_cloud_collection

6、复制/usr/local/solr-6.6.0/example/example-DIH/solr/solr/目录下的文件到solr_cloud_collection/cloud_core中

mkdir -p /usr/local/solr_cloud_collection/cloud_corecp -r /usr/local/solr-6.6.1/example/example-DIH/solr/solr/* /usr/local/solr_cloud_collection/cloud_core/

enter description here

五、在宿主机提交容器solr1为新的镜像,命名为centos-self-solr

# docker commit server1 centos-self-solrcloud

1、在宿主机启动容器server2,设置IP为172.18.0.12 并指定映射端口号

# docker run -itd –p 8792:8983 --name solr2  --net search_network --ip 172.18.0.12 centos-self-solr /bin/bash

2、将容器solr2中/home/tank/zookeeper/data/myid内容由1改为2

3、在宿主机中查看docker容器运行情况

六、solr1,solr2分别启动zookeeper

# source /etc/profile# cd /usr/local/zookeeper-3.5.3-beta/# bin/zkServer.sh start

enter description here

七、solr1,solr2启动solr

# cd /usr/local/solr-6.6.1/# bin/solr start -cloud -p 8983 -s "/usr/local/solrCloud/solr_cloud_home/" -z "172.17.0.31:2181,172.17.0.32:2181" -force

enter description here

1、查看solr日志是否报错:

# cat /usr/local/solr-6.6.1/server/logs/solr.log

enter description here

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

# cd /usr/local/solr-6.6.1# bin/solr create_collection -c test_collection -shards 2 -replicationFactor 3 –force

-c 核心名称tar
-shards 分片数量
- replicationFactor 副本数量 (一般指有几台solr集群)

enter description here

enter description here

参考:
Ubuntu 14.04下适应Docker搭建solrCloud集群
CentOs7.3 搭建 SolrCloud 集群服务

阅读全文
0 0
原创粉丝点击