docker部署solr+zk集群

news2025/1/21 10:20:46

在三台服务器上搭建solr集群,具体架构如下所示:

192.168.184.127         solr1/zk1

192.168.184.128         solr2/zk2

192.168.184.129         solr3/zk3

1.安装docker

三台服务器上都执行以下命令

# setenforce 0

# systemctl stop firewalld

# systemctl disable firewalld

# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

安装docker

# yum -y install docker

# systemctl start docker

# systemctl enable docker

2.安装zk集群,三台服务器上都执行以下命令

# mkdir -p /usr/local/solr-zk/zk/{conf,data,datalog}

solr1服务器执行:

# vim /usr/local/solr-zk/zk/conf/zoo.cfg

dataDir=/data

dataLogDir=/datalog

clientPort=2181

tickTime=2000

initLimit=5

syncLimit=2

autopurge.snapRetainCount=3

autopurge.purgeInterval=0

maxClientCnxns=60

standaloneEnabled=true

admin.enableServer=false

server.1=0.0.0.0:2888:3888

server.2=192.168.184.128:2888:3888

server.3=192.168.184.129:2888:3888

solr2服务器执行:

# vim /usr/local/solr-zk/zk/conf/zoo.cfg

dataDir=/data

dataLogDir=/datalog

clientPort=2181

tickTime=2000

initLimit=5

syncLimit=2

autopurge.snapRetainCount=3

autopurge.purgeInterval=0

maxClientCnxns=60

standaloneEnabled=true

admin.enableServer=false

server.1=192.168.184.127:2888:3888

server.2=0.0.0.0:2888:3888

server.3=192.168.184.129:2888:3888

solr3服务器执行:

# vim /usr/local/solr-zk/zk/conf/zoo.cfg

dataDir=/data

dataLogDir=/datalog

clientPort=2181

tickTime=2000

initLimit=5

syncLimit=2

autopurge.snapRetainCount=3

autopurge.purgeInterval=0

maxClientCnxns=60

standaloneEnabled=true

admin.enableServer=false

server.1=192.168.184.127:2888:3888

server.2=192.168.184.128:2888:3888

server.3=0.0.0.0:2888:3888

新建myid文件

192.168.184.127上执行

# echo "1" > /usr/local/solr-zk/zk/data/myid 

192.168.184.128上执行

# echo "2" > /usr/local/solr-zk/zk/data/myid

192.168.184.129上执行

# echo "3" > /usr/local/solr-zk/zk/data/myid

启动容器

192.168.184.127上执行

# docker run -d \

-p 2181:2181 \

-p 2888:2888 \

-p 3888:3888 \

--privileged=true \

--restart=always \

-v /usr/local/solr-zk/zk/data/:/data/ \

-v /usr/local/solr-zk/zk/datalog/:/datalog/ \

-v /usr/local/solr-zk/zk/conf/zoo.cfg:/conf/zoo.cfg \

-v /etc/localtime:/etc/localtime:ro \

--name zk \

-h 192.168.184.127 \

zookeeper:3.4.14

192.168.184.128上执行

# docker run -d \

-p 2181:2181 \

-p 2888:2888 \

-p 3888:3888 \

--privileged=true \

--restart=always \

-v /usr/local/solr-zk/zk/data/:/data/ \

-v /usr/local/solr-zk/zk/datalog/:/datalog/ \

-v /usr/local/solr-zk/zk/conf/zoo.cfg:/conf/zoo.cfg \

-v /etc/localtime:/etc/localtime:ro \

--name zk \

-h 192.168.184.128 \

zookeeper:3.4.14

192.168.184.129上执行

# docker run -d \

-p 2181:2181 \

-p 2888:2888 \

-p 3888:3888 \

--privileged=true \

--restart=always \

-v /usr/local/solr-zk/zk/data/:/data/ \

-v /usr/local/solr-zk/zk/datalog/:/datalog/ \

-v /usr/local/solr-zk/zk/conf/zoo.cfg:/conf/zoo.cfg \

-v /etc/localtime:/etc/localtime:ro \

--name zk \

-h 192.168.184.129 \

zookeeper:3.4.14

查看容器状态

# docker ps

3.安装solr集群,三台服务器上都执行以下命令

# mkdir -p /usr/local/solr-zk/solr/config

192.168.184.127上执行

# vim /usr/local/solr-zk/solr/config/solr.in.sh

SOLR_HEAP="1g"

ZK_HOST="192.168.184.127:2181,192.168.184.128:2181,192.168.184.129:2181"     #zk集群地址

SOLR_HOST="192.168.184.127"         #本机ip地址

SOLR_TIMEZONE="UTC+8"

ENABLE_REMOTE_JMX_OPTS="false"

SOLR_OPTS="$SOLR_OPTS -Xss256k"

SOLR_OPTS="$SOLR_OPTS -Dsun.net.inetaddr.ttl=60 -Dsun.net.inetaddr.negative.ttl=60"

SOLR_HOME="/var/solr/data/"

SOLR_LOGS_DIR="/var/solr/logs/"

SOLR_PORT=8983    #solr端口

192.168.184.128上执行

# vim /usr/local/solr-zk/solr/config/solr.in.sh

SOLR_HEAP="1g"

ZK_HOST="192.168.184.127:2181,192.168.184.128:2181,192.168.184.129:2181"

SOLR_HOST="192.168.184.128"

SOLR_TIMEZONE="UTC+8"

ENABLE_REMOTE_JMX_OPTS="false"

SOLR_OPTS="$SOLR_OPTS -Xss256k"

SOLR_OPTS="$SOLR_OPTS -Dsun.net.inetaddr.ttl=60 -Dsun.net.inetaddr.negative.ttl=60"

SOLR_HOME="/var/solr/data/"

SOLR_LOGS_DIR="/var/solr/logs/"

SOLR_PORT=8983

192.168.184.129上执行

# vim /usr/local/solr-zk/solr/config/solr.in.sh

SOLR_HEAP="1g"

ZK_HOST="192.168.184.127:2181,192.168.184.128:2181,192.168.184.129:2181"

SOLR_HOST="192.168.184.129"

SOLR_TIMEZONE="UTC+8"

ENABLE_REMOTE_JMX_OPTS="false"

SOLR_OPTS="$SOLR_OPTS -Xss256k"

SOLR_OPTS="$SOLR_OPTS -Dsun.net.inetaddr.ttl=60 -Dsun.net.inetaddr.negative.ttl=60"

SOLR_HOME="/var/solr/data/"

SOLR_LOGS_DIR="/var/solr/logs/"

SOLR_PORT=8983

分别启动容器

192.168.184.127上执行

# docker run -d \

--restart=always \

-p 8983:8983 \

-l io.rancher.container.network=true \

-v /usr/local/solr-zk/solr/solrhome/:/var/solr/solrhome/ \

-v /usr/local/solr-zk/solr/log/:/var/solr/log/ \

-v /usr/local/solr-zk/solr/dist/:/var/solr/dist/ \

-v /usr/local/solr-zk/solr/config/solr.in.sh:/etc/default/solr.in.sh \

-v /etc/localtime:/etc/localtime:ro \

--name solr \

-h 192.168.184.127 \

solr:latest

192.168.184.128上执行

# docker run -d \

--restart=always \

-p 8983:8983 \

-l io.rancher.container.network=true \

-v /usr/local/solr-zk/solr/solrhome/:/var/solr/solrhome/ \

-v /usr/local/solr-zk/solr/log/:/var/solr/log/ \

-v /usr/local/solr-zk/solr/dist/:/var/solr/dist/ \

-v /usr/local/solr-zk/solr/config/solr.in.sh:/etc/default/solr.in.sh \

-v /etc/localtime:/etc/localtime:ro \

--name solr \

-h 192.168.184.128 \

solr:latest

192.168.184.129上执行

# docker run -d \

--restart=always \

-p 8983:8983 \

-l io.rancher.container.network=true \

-v /usr/local/solr-zk/solr/solrhome/:/var/solr/solrhome/ \

-v /usr/local/solr-zk/solr/log/:/var/solr/log/ \

-v /usr/local/solr-zk/solr/dist/:/var/solr/dist/ \

-v /usr/local/solr-zk/solr/config/solr.in.sh:/etc/default/solr.in.sh \

-v /etc/localtime:/etc/localtime:ro \

--name solr \

-h 192.168.184.129 \

solr:latest

查看容器状态

# docker ps

访问solr集群:http://192.168.184.127:8983/solr/index.html

 用命令创建cllocetion

curl 'http://127.0.0.1:8983/solr/admin/collections?action=CREATE&name=a&numShards=1&replicationFactor=3&maxShardsPerNode=1'

 如下图所示,其他节点也会进行同步

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/105766.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录Day56|583.两个字符串的删除操作 、72.编辑距离、编辑距离总结篇

文章目录583.两个字符串的删除操作72.编辑距离编辑距离总结篇583.两个字符串的删除操作 文章讲解:代码随想录 (programmercarl.com) 题目链接:583. 两个字符串的删除操作 - 力扣(LeetCode) 题目: 给定两个单词 wor…

Flume EmbeddedAgent

flume flume 二次开发,对EmbeddedAgent的简易改造,动态控制agent,实现启动、关闭等功能。 模块结构如下所示: flume-parent github地址 1、用途 1.1、本地调试 对flume不是特别熟悉的开发者,都没有办法一次开发完…

消息队列mq

1. 为什么使用消息队列? 其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么? 解耦、异步、削峰 2. 消息队列优缺点 2.1.优点 优点上面已经说了,就是在特殊…

并查集的原理及实现

Ⅰ. 并查集原理 在一些应用问题中,需要将 n 个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述这…

前端基础_线型Line styles

线型Line styles 线型包括如下属性。 lineWidth value lineCap type lineJoin type miterLimit value 通过这些属性来设置线的样式。下面将结合实例来讲解一下各属性的应用及应用后的效果。 lineWidth属性 该属性设置当前绘线的粗细,属性值必须…

ArcGIS编辑绘制图斑又慢又难?这些高效的处理技巧你值得拥有!

GIS画图是不是画得很慢! 图斑修改是不是无从下手! 图纸矢量化是不是琐碎繁杂、工作量大! 其实,强大的ArcGIS有很多高效的图斑编辑技巧,掌握这些技巧,无论是绘制图斑、还是修改图斑,还是图纸矢量化,绝对让你事半功倍! NO.1—自动完成面 当你要绘制一个图斑的相邻图…

华为云桌面,企业云上办公为何都偏好它?

在众多云上办公产品中,华为云桌面基于华为云的三十年投入的技术强、资源多、创新快和更可靠的优势,在众多云上办公产品中脱颖而出,成为众多企业数字化转型道路上不二选择,类似于三一重工、中泰模具、小飞侠等企业都选择了华为云桌…

非递归前序、中序遍历代码推演出后序遍历代码(极其透彻)

一、前言 众所周知,二叉树的遍历方式有三种:前序遍历、中序遍历和后序遍历。 🍌 前序遍历:首先访问根节点,然后递归遍历左子树,最后递归遍历右子树。 🍌 中序遍历:首先递归遍历左…

pypower的简单应用1

目录 一、背景描述 二、如何打开IEEE30节点并进行潮流计算 三、如何修改已有模型参数 四、完整代码 五、注意事项 pypower与matpower非常类似,可以利用matpower学习pypower,当然也有一些不同之处。下面记录一下应用pypower解决的问题。 一、背景描述…

Java优先队列的代码实现过程详解

1.优先队列定义 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在某些情况下,我们可能需要找出队列中的最大值或者最小值,例如使用一个队列保存计算机的任务,一般情况下计算机的任务都是有优先…

《Python程序开发》期末作业

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、题目: 1 .选修课信息(1).xlsx,信息如下: 2 .学生选课信息表.xls,信息如下 3.任务 二、将文件中的信息导入数据库 …

脱水蔬菜开启蔬菜产业发展新道路 国内市场正不断扩大

根据观研报告网发布的《中国脱水蔬菜市场发展现状研究与投资前景预测报告(2022-2029年)》显示,脱水蔬菜又称复水菜,是将新鲜蔬菜经过洗涤、烘干等加工制作,脱去蔬菜中大部分水分后而制成的一种干菜,食用时只…

Netty实战与源码剖析(一)——浅谈NIO编程

1 前言 很久之前就想写与Netty相关的博客了,但由于个人时间安排的问题一直拖到了现在,借助这个机会,重新温习Java高级编程的同时,也把Netty实战以及源码剖析分享给各位读者。 2 Netty是什么? Netty is a NIO client …

Spring—Spring IOC

文章目录Spring IOC容器1. 什么是IOC2.IOC的核心原理IOC如何充当对象容器?具体什么作为对象容器?IOC的核心原理图3. IOC容器的底层原理IOC的实现,依赖于以下3门技术上边提到的三种技术如何实现IOC的呢?4.IOC(接口)————————…

官宣!CATCTF不日开赛!!

各位极客请注意! 2022.12.31 10:00—2023.01.01 17:00 攻防世界 x Nepnep x CATCTF 即将开赛 请做好参战准备! 本场赛事由攻防世界提供技术与平台支撑 部分赛题募集自各位爱猫人士 其他题目则由Nepnep的师傅们承包 赛事运维人员也将由志愿者师傅们…

一起Talk Android吧(第四百四十八回:UI控件之Switch)

文章目录概念介绍使用方法内容总结各位看官们大家好,上一回中咱们说的例子是"UI控件之TimePickerDialog",这一回中说的例是" UI控件之Switch"。闲话休提,言归正转,让我们一起Talk Android吧!概念介绍 我们在…

设计模式~简单工厂模式

简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 工厂模式专门负责将大量有共同接口的类实例化。 工厂模式的几种形态: 简单工厂模式(Simple Factory):又称静态工厂方法模式工厂方法模式(Factory Method):又称多态…

云卷云舒:2022 数据库总结从Gartner到IDC

2022年尾已至,行业总结纷纷而至。Gartner 于12月13日发布了其 “2022 云数据库管理系统魔力象限”IDC于12月15日发布了 “2022年上半年中国关系型数据库软件市场跟踪报告”Gartner 的魔力象限,聚焦在 "Cloud Database",不再进行本地…

《Redis实战篇》三、优惠券秒杀

文章目录3.1 全局唯一ID3.2 Redis实现全局唯一Id3.3 添加优惠卷3.4 实现秒杀下单3.5 库存超卖问题分析3.6 乐观锁解决超卖问题3.7 优惠券秒杀-一人一单3.8 集群环境下的并发问题3.1 全局唯一ID 每个店铺都可以发布优惠券: 当用户抢购时,就会生成订单并保…

nginx+rtmp+OBS搭建音视频直播服务

文章目录OBSNginx-rtmpdocker方式野生方式推流hls单码流rtmp多码流拉流OBS 下载地址: http://www.obsproject.com.cn/download/https://obsproject.com/zh-cn/download 傻瓜式一路按照提示安装即可。 Nginx-rtmp docker方式 有很多个镜像可供选择,我…