栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker搭建Elasticsearch集群

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker搭建Elasticsearch集群

之前一直想写用docker搭建es集群的方法,今天有时间,来写一写,欢迎讨论。

文章目录

拉取镜像配置配置文件启动容器查看集群启动情况避免脑裂的注意事项

拉取镜像

需要在dockerhub选择适合自己系统的镜像。(镜像适配的系统不同)

docker pull es镜像

配置配置文件
# es1
# 主master配置样例子
# 集群的名称
cluster.name: "docker-cluster"
# 节点的名称
node.name: node-1
# 此节点是否可以用作master节点
node.master: true
# 此节点是否是存储节点
node.data: false
# 此节点是否是预处理节点 如果是master节点的话 建议这里是true
node.ingest: true
# 
network.host: 0.0.0.0
# 配置端口
http.port: 9200
# 集群通信端口
transport.port: 9300
# 集群内节点信息 每个节点会共享自己的此参数
# 这里我配置自己的dockerIP
discovery.seed_hosts: ["172.17.0.2:9300","172.17.0.3:9300","172.17.0.4:9300"]
# 集群的master候选节点目录。只有在初始化的时候才生效。
# 这里只写node-1 并且配置这个参数 是用于快速搭建集群。集群已启动自动node-1   是master
cluster.initial_master_nodes: ["node-1"]
# cross 跨域访问 配置这个之后 head就可以用了
http.cors.enabled:  true
http.cors.allow-origin:  "*"
# es2
# 从节点配置样例子
# 集群的名称
cluster.name: "docker-cluster"
# 节点的名称
node.name: node-2
# 此节点是否可以用作master节点
node.master: true
# 此节点是否是存储节点
node.data: true
# 此节点是否是预处理节点 如果是master节点的话 建议这里是true
node.ingest: true
# 
network.host: 0.0.0.0
# 配置端口
http.port: 9200
# 集群通信端口
transport.port: 9300
# 集群内节点信息 每个节点会共享自己的此参数
# 这里我配置自己的dockerIP
discovery.seed_hosts: ["172.17.0.2:9300","172.17.0.3:9300","172.17.0.4:9300"]
# 集群的master候选节点目录。只有在初始化的时候才生效。
# 这里只写node-1 并且配置这个参数 是用于快速搭建集群。集群已启动自动node-1   是master
cluster.initial_master_nodes: ["node-1"]
# cross 跨域访问 配置这个之后 head就可以用了
http.cors.enabled:  true
http.cors.allow-origin:  "*"
# es3
# 从节点配置样例子
# 集群的名称
cluster.name: "docker-cluster"
# 节点的名称
node.name: node-3
# 此节点是否可以用作master节点
node.master: true
# 此节点是否是存储节点
node.data: true
# 此节点是否是预处理节点 如果是master节点的话 建议这里是true
node.ingest: true
# 
network.host: 0.0.0.0
# 配置端口
http.port: 9200
# 集群通信端口
transport.port: 9300
# 集群内节点信息 每个节点会共享自己的此参数
# 这里我配置自己的dockerIP
discovery.seed_hosts: ["172.17.0.2:9300","172.17.0.3:9300","172.17.0.4:9300"]
# 集群的master候选节点目录。只有在初始化的时候才生效。
# 这里只写node-1 并且配置这个参数 是用于快速搭建集群。集群已启动自动node-1   是master
cluster.initial_master_nodes: ["node-1"]
# cross 跨域访问 配置这个之后 head就可以用了
http.cors.enabled:  true
http.cors.allow-origin:  "*"
启动容器
# 我自己的镜像版本是7.17.0
# 必须限制es内存的大小 es默认内存是4g 单机docker模拟的话 不限制内存 资源是不够的
docker run -d  --name es1 -e ES_JAVA_OPTS="-Xms156m -Xmx156m" -p 9200:9200 -p 9300:9300 -v /Users/es/es1/e1.yml:/usr/share/elasticsearch/config/elasticsearch.yml   elasticsearch:7.17.0

docker run -d  --name es2 -e ES_JAVA_OPTS="-Xms156m -Xmx156m" -p 9201:9200 -p 9301:9300 -v /Users/es/es2/e2.yml:/usr/share/elasticsearch/config/elasticsearch.yml   elasticsearch:7.17.0

docker run -d  --name es3 -e ES_JAVA_OPTS="-Xms156m -Xmx156m" -p 9201:9200 -p 9301:9300 -v /Users/es/es2/e3.yml:/usr/share/elasticsearch/config/elasticsearch.yml   elasticsearch:7.17.0
查看集群启动情况
http://127.0.0.1:9200/_cat/nodes?pretty
避免脑裂的注意事项

脑裂形成的原因

master节点配置的既是master又是data,master节点频繁处理数据,导致的响应慢网络不好,从节点等待master回复的时间设置的短

预防脑裂

master节点不做data节点使用等待master节点的响应时间设置长一点设置最小节点同意选举的参数。值建议为(n/2)+1。例如三个节点的情况,当两个节点认为master挂了的时候,才会重新选master。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756935.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号