Docker安装es集群

本文详细描述了如何在Linux环境中安装Elasticsearch7.8.0集群,包括拉取镜像、创建文件挂载目录、配置节点、设置权限以及解决启动时的master_not_discovered_exception问题。
摘要由CSDN通过智能技术生成

安装步骤

拉取镜像

docker pull elasticsearch:7.8.0

配置文件

1. 创建文件挂载目录,并开放端口

#创建三个挂载目录,并在挂载目录下创建data和config文件夹
[root@ykp es]# mkdir node1
[root@ykp es]# mkdir node2
[root@ykp es]# mkdir node3

2. 修改文件权限,不修改的话会报错

[root@ykp node3]# chmod 777 data/

 3. 新建配置文件

进入到config文件夹目录下编辑配置文件

#节点1的配置文件
[root@ykp config]# vim elasticsearch.yml 
[root@ykp config]# cat elasticsearch.yml 
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 192.168.15.8
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.seed_hosts: ["192.168.15.8:9300","192.168.15.8:9301","192.168.15.8:9302"]
#discovery.zen.ping.unicast.hosts: ["192.168.15.8:9300","192.168.15.8:9301","192.168.15.8:9302"]
#discovery.zen.minimum_master_nodes: 2
#节点2的配置文件
[root@ykp config]# vim elasticsearch.yml 
[root@ykp config]# cat elasticsearch.yml 
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 192.168.15.8
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.seed_hosts: ["192.168.15.8:9300","192.168.15.8:9301","192.168.15.8:9302"]
#discovery.zen.ping.unicast.hosts: ["192.168.15.8:9300","192.168.15.8:9301","192.168.15.8:9302"]
#discovery.zen.minimum_master_nodes: 2
#节点3的配置文件
[root@ykp config]# vim elasticsearch.yml
[root@ykp config]# cat elasticsearch.yml 
cluster.name: elasticsearch-cluster
node.name: es-node3
network.bind_host: 0.0.0.0
network.publish_host: 192.168.15.8
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
node.ingest: true
discovery.seed_hosts: ["192.168.15.8:9300","192.168.15.8:9301","192.168.15.8:9302"]
#discovery.zen.ping.unicast.hosts: ["192.168.15.8:9300","192.168.15.8:9301","192.168.15.8:9302"]
#discovery.zen.minimum_master_nodes: 2

启动三个容器

[root@ykp /]# docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /cyyuse/es/node1/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /cyyuse/es/node1/data:/usr/share/elasticsearch/data --name ES01 elasticsearch:7.8.0
1c6ad925862474df2cc4d337f82b41c5ad068e2179ed81c934edc0c62df69cf9
[root@ykp /]# docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301 -v /cyyuse/es/node2/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /cyyuse/es/node2/data:/usr/share/elasticsearch/data --name ES02 elasticsearch:7.8.0
4139efc8fefcab773098ffe42563c20d7617280e849dd8be7d06ed156f382c81
[root@ykp node3]# docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9202:9202 -p 9302:9302 -v /cyyuse/es/node3/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /cyyuse/es/node3/data:/usr/share/elasticsearch/data --name ES03 elasticsearch:7.8.0
68104485fd4467e912f4160620ae638b4ade278c226c0d61ee99fea945d93200


#查看容器启动是否成功
[root@ykp /]# docker ps
CONTAINER ID   IMAGE                 COMMAND                   CREATED          STATUS          PORTS                                                                                                      NAMES
4139efc8fefc   elasticsearch:7.8.0   "/tini -- /usr/local…"   3 seconds ago    Up 2 seconds    9200/tcp, 0.0.0.0:9201->9201/tcp, :::9201->9201/tcp, 9300/tcp, 0.0.0.0:9301->9301/tcp, :::9301->9301/tcp   ES02
1c6ad9258624   elasticsearch:7.8.0   "/tini -- /usr/local…"   10 seconds ago   Up 9 seconds    0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp                       ES01
68104485fd44   elasticsearch:7.8.0   "/tini -- /usr/local…"   21 minutes ago   Up 21 minutes   9200/tcp, 0.0.0.0:9202->9202/tcp, :::9202->9202/tcp, 9300/tcp, 0.0.0.0:9302->9302/tcp, :::9302->9302/tcp   ES03
947bc3b9e608   mysql:8.0             "docker-entrypoint.s…"   5 days ago       Up 5 days       33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp                                                       mysql

验证

在浏览器查看是否构建成功:

 好的,失败了,错误原因:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "master_not_discovered_exception",
        "reason" : null
      }
    ],
    "type" : "master_not_discovered_exception",
    "reason" : null
  },
  "status" : 503
}

解决方法: 在每个.yml配置文件中设置默认主节点

cluster.initial_master_nodes: ["es-node1"]

重启三个容器:

[root@ykp config]# docker restart ES01 ES02 ES03
ES01
ES02
ES03

再次在浏览器中查看节点:

 

报错

1. 报错内容如下:

"Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes",

解决方法:在node路径下修改权限

[root@ykp node3]# chmod 777 data/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值