当前位置:   article > 正文

docker搭建Elasticsearch集群_elasticsearch集群 docker的安装部署

elasticsearch集群 docker的安装部署

1.拉取es镜像

 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.0
  • 1

版本根据自己需求进行拉取,我这边选择的是7.17.0,不同版本配置可能稍有差别!

2.配置配置文件

采用文件挂载的方式,采用宿主机配置文件,本文采用的三台主机搭建集群,每一台主机的配置稍有区别!
主机一:

# 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:  "*"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

主机二:

# 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:  "*"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

主机三:

# 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:  "*"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

3.启动容器

# 我自己的镜像版本是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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

-v /Users/es/es1/e1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v是挂载,将宿主机 /Users/es/es1/e1.yml挂载到/usr/share/elasticsearch/config/elasticsearch.yml,根据自己的实际目录自行设置,-p是端口映射,切记端口不可已被占用!

使用ss -nlt 查看端口是否已启动
在这里插入图片描述

4.启动过程中遇到的问题

运行elasticsearch时连接时显示已拒绝连接,容器自动关闭的问题
通过docker logs -f CONTAINER ID 查看容器日志信息,看最后面发现一个error:

ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least
  • 1
  • 2

显示max_map_count的值太小了,需要设大到262144,此时查看max_map_count :

cat /proc/sys/vm/max_map_count
65530
  • 1
  • 2

设置max_map_count:

sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144
  • 1
  • 2

重启容器:

docker start  容器id或名字
  • 1

如果重新构建需要删除或者更改容器名称,否则会报错,可以执行docker rm -f $(docker ps -a -q) ,删除所有已退出的容器

5.查看容器启动情况

访问的ip地址需要更改为集群所在宿主机的ip地址

http://127.0.0.1:9200/_cat/nodes?pretty
  • 1

在这里插入图片描述

在这里插入图片描述
安装elasticsearch Head 插件!
在这里插入图片描述
添加集群ip地址就可以查看详细的集群信息,同时可以对集群进行操作!
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/565952
推荐阅读
相关标签
  

闽ICP备14008679号