• Dcoker安装配置ElasticSearch集群(7版本)


    前言

    接着之前安装的ES、head等操作。

    如果之前的安装你没有操作,去安装一遍。Docker安装ES、Kibana、head、IK 

    如果安装过了并且之前启动过ES,执行下下面这个命令,删除nodes文件夹,否则会导致ES各节点的UUID不一致。

    # 我的data挂载文件夹是这个目录 /elasticsearch/data
    rm -rf /elasticsearch/data/nodes/
    

    前期准备

    服务器 主机名称
    192.168.206.212 node1
    192.168.206.213 node2
    192.168.206.214 node3

    1、操作系统限制修改

    vim /etc/sysctl.conf
    vm.max_map_count=655360
    sysctl -p
    

    2、配置elasticsearch.yml

    之前我们配置的elasticsearch.yml内容是针对单节点的,下面是三台机子的elasticsearch.yml内容

    三台主机内容只有两处不一样:node.name 和 network.host

    node1主机

    # 设置集群名称,集群内所有节点的名称必须一致。
    cluster.name: kont
    # 设置节点名称,集群内节点名称必须唯一。
    node.name: node1
    # 表示该节点会不会作为主节点,true表示会;false表示不会
    node.master: true
    # 当前节点是否用于存储数据,是:true、否:false
    node.data: true
    # 索引数据存放的位置
    #path.data: /usr/share/elasticsearch/data
    # 日志文件存放的位置
    #path.logs: /usr/share/elasticsearch/logs
    # 需求锁住物理内存,是:true、否:false
    #bootstrap.memory_lock: true
    # 监听地址,用于访问该es
    network.host: 192.168.206.212
    # es对外提供的http端口,默认 9200
    http.port: 9200
    # TCP的默认监听端口,默认 9300
    transport.tcp.port: 9300
    # 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
    discovery.zen.minimum_master_nodes: 1
    # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
    discovery.seed_hosts: ["192.168.206.212:9300", "192.168.206.213:9300","192.168.206.214:9300"]
    discovery.zen.fd.ping_timeout: 1m
    discovery.zen.fd.ping_retries: 5
    # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
    cluster.initial_master_nodes: ["192.168.206.212:9300", "192.168.206.213:9300","192.168.206.214:9300"]
    # 是否支持跨域,是:true,在使用head插件时需要此配置
    http.cors.enabled: true
    # “*” 表示支持所有域名
    http.cors.allow-origin: "*"
    

    node2主机

    # 设置集群名称,集群内所有节点的名称必须一致。
    cluster.name: kont
    # 设置节点名称,集群内节点名称必须唯一。
    node.name: node2
    # 表示该节点会不会作为主节点,true表示会;false表示不会
    node.master: true
    # 当前节点是否用于存储数据,是:true、否:false
    node.data: true
    # 索引数据存放的位置
    #path.data: /usr/share/elasticsearch/data
    # 日志文件存放的位置
    #path.logs: /usr/share/elasticsearch/logs
    # 需求锁住物理内存,是:true、否:false
    #bootstrap.memory_lock: true
    # 监听地址,用于访问该es
    network.host: 192.168.206.213
    # es对外提供的http端口,默认 9200
    http.port: 9200
    # TCP的默认监听端口,默认 9300
    transport.tcp.port: 9300
    # 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
    discovery.zen.minimum_master_nodes: 1
    # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
    discovery.seed_hosts: ["192.168.206.212:9300", "192.168.206.213:9300","192.168.206.214:9300"]
    discovery.zen.fd.ping_timeout: 1m
    discovery.zen.fd.ping_retries: 5
    # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
    cluster.initial_master_nodes: ["192.168.206.212:9300", "192.168.206.213:9300","192.168.206.214:9300"]
    # 是否支持跨域,是:true,在使用head插件时需要此配置
    http.cors.enabled: true
    # “*” 表示支持所有域名
    http.cors.allow-origin: "*"
    

    node3主机

    # 设置集群名称,集群内所有节点的名称必须一致。
    cluster.name: kont
    # 设置节点名称,集群内节点名称必须唯一。
    node.name: node2
    # 表示该节点会不会作为主节点,true表示会;false表示不会
    node.master: true
    # 当前节点是否用于存储数据,是:true、否:false
    node.data: true
    # 索引数据存放的位置
    #path.data: /usr/share/elasticsearch/data
    # 日志文件存放的位置
    #path.logs: /usr/share/elasticsearch/logs
    # 需求锁住物理内存,是:true、否:false
    #bootstrap.memory_lock: true
    # 监听地址,用于访问该es
    network.host: 192.168.206.213
    # es对外提供的http端口,默认 9200
    http.port: 9200
    # TCP的默认监听端口,默认 9300
    transport.tcp.port: 9300
    # 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
    discovery.zen.minimum_master_nodes: 1
    # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
    discovery.seed_hosts: ["192.168.206.212:9300", "192.168.206.213:9300","192.168.206.214:9300"]
    discovery.zen.fd.ping_timeout: 1m
    discovery.zen.fd.ping_retries: 5
    # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
    cluster.initial_master_nodes: ["192.168.206.212:9300", "192.168.206.213:9300","192.168.206.214:9300"]
    # 是否支持跨域,是:true,在使用head插件时需要此配置
    http.cors.enabled: true
    # “*” 表示支持所有域名
    http.cors.allow-origin: "*"
    

    3、启动ES

    # node1主机
    docker run  -d  --network=host --privileged=true  \
    -e ES_JAVA_OPTS="-Xms512m -Xmx512m"  \
    -e TAKE_FILE_OWNERSHIP=true --name es-node1 \
    -v /elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /elasticsearch/data:/usr/share/elasticsearch/data \
    -v /elasticsearch/logs:/usr/share/elasticsearch/logs \
    -v /elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    elasticsearch:7.4.2
    
    # node2主机
    docker run  -d  --network=host --privileged=true  \
    -e ES_JAVA_OPTS="-Xms512m -Xmx512m"  \
    -e TAKE_FILE_OWNERSHIP=true --name es-node2 \
    -v /elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /elasticsearch/data:/usr/share/elasticsearch/data \
    -v /elasticsearch/logs:/usr/share/elasticsearch/logs \
    -v /elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    elasticsearch:7.4.2
    
    # node3主机
    docker run  -d  --network=host --privileged=true  \
    -e ES_JAVA_OPTS="-Xms512m -Xmx512m"  \
    -e TAKE_FILE_OWNERSHIP=true --name es-node3 \
    -v /elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /elasticsearch/data:/usr/share/elasticsearch/data \
    -v /elasticsearch/logs:/usr/share/elasticsearch/logs \
    -v /elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    elasticsearch:7.4.2
    

    4、测试

    打开浏览器,检查集群是否正常

    192.168.206.212:9200/_cat/nodes?pretty

     192.168.206.212:9100

  • 相关阅读:
    Java Android程序员软件开发知识:枚举的介绍,以及代码的编写教程。
    Android中实现全屏、无标题栏的两种办法(另附Android系统自带样式的解释)
    Android(java)开发之将double类型,强制保留到小数点后两位解决方法。
    Android开发之第三方推送JPush极光推送知识点详解 学会集成第三方SDK推送
    Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能。
    输入流、输出流
    关键字和继承
    java集合
    SpringMVC框架拦截器
    SpringMVC框架基础
  • 原文地址:https://www.cnblogs.com/qq1445496485/p/16529309.html
Copyright © 2020-2023  润新知