美文网首页
Docker 搭建 elasticsearch 集群

Docker 搭建 elasticsearch 集群

作者: 谁有羊毛 | 来源:发表于2020-02-19 23:13 被阅读0次

    docker搭建一个es集群,主要还是docker太方便了。es也有官方的镜像

    一、环境准备
    1. 一台虚拟机 ,然后:
    • 操作系统:centos7.x
    • 必要应用:docker,顺便配一下阿里云加速镜像
    二、搭建集群
    1. 创建必要目录
    mkdir -p /root/es/es1-data
    mkdir -p /root/es/es2-data
    mkdir -p /root/es/es3-data
    
    1. 配置宿主机的必要配置
    • 修改 /etc/sysctl.conf —— vim /etc/sysctl.conf , 在行某填入
    vm.swappiness = 30
    vm.max_map_count=655360
    
    • 然后wq保存后,再执行命令应用配置
    sysctl -p
    
    1. 创建各个节点的配置

    discovery.zen.ping.unicast.hosts: 这个是填写master节点的地址

    • es1 , 这个节点作为master节点和数据节点,vim /root/es/es1.yml
    cluster.name: elasticsearch-cluster
    node.name: es-node1
    network.bind_host: 0.0.0.0
    network.publish_host: 192.168.150.129
    http.port: 9200
    transport.tcp.port: 9300
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    node.master: true 
    node.data: true  
    cluster.initial_master_nodes: ["es-node1"]
    # 这里是填 master节点的 host
    discovery.zen.ping.unicast.hosts: ["192.168.150.129:9300"]
    discovery.zen.minimum_master_nodes: 1
    
    • es2 的es2.yml
    cluster.name: elasticsearch-cluster
    node.name: es-node2
    network.bind_host: 0.0.0.0
    network.publish_host: 192.168.150.129
    http.port: 9201
    transport.tcp.port: 9301
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    node.master: false 
    node.data: true  
    discovery.zen.ping.unicast.hosts: ["192.168.150.129:9300"]
    discovery.zen.minimum_master_nodes: 1
    
    • es3的es3.yml
    cluster.name: elasticsearch-cluster
    node.name: es-node2
    network.bind_host: 0.0.0.0
    network.publish_host: 192.168.150.129
    http.port: 9201
    transport.tcp.port: 9301
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    node.master: false 
    node.data: true  
    discovery.zen.ping.unicast.hosts: ["192.168.150.129:9300"]
    discovery.zen.minimum_master_nodes: 1
    
    1. 启动各个节点
    • es1 master节点
    # es1 启动主节点的方式 
    docker run -d --name=es1 --net host \
    -v /root/es/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /root/es/es1-data:/usr/share/elasticsearch/data \
    -p 9200:9200 -p 9300:9300 elasticsearch:7.5.2
    
    • es2 数据节点
    # es2 启动数据节点 
    docker run --rm --name=es2 --net host \
    -v /root/es/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /root/es/es2-data:/usr/share/elasticsearch/data \
    -p 9201:9201 -p 9301:9301 elasticsearch:7.5.2
    
    • es3 数据节点
    # es3 启动数据节点 
    
    docker run --rm --name=es3 --net host \
    -v /root/es/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /root/es/es3-data:/usr/share/elasticsearch/data \
    -p 9202:9202 -p 9302:9302 elasticsearch:7.5.2
    
    1. 可以通过查看各个节点的日志
    docker container logs es1
    docker container logs es2
    docker container logs es3
    
    三、管理cluster界面
    1. es的管理工具 https://github.com/mobz/elasticsearch-head#running-with-built-in-server , 这里直接用现成的Chrome 插件就可以,成功后可以看见如下图:
      es head.jpg
    • 然后输入es的地址即可
    四、遇到的问题
    1. 创建目录权限问题
    • 临时关闭selinux然后再打开
    # 终端执行
    setenforce 0
    setenforce 1
    
    • 然后挂载的/root/es-data 赋予权限
    # 简单粗暴的赋权,可以根据自己需要选择
    chmod 777 /root/es
    

    相关文章

      网友评论

          本文标题:Docker 搭建 elasticsearch 集群

          本文链接:https://www.haomeiwen.com/subject/fanzfhtx.html