• 基于华为云服务器docker配置Elasticsearch集群


    先拉取Elasticsearch镜像

    docker pull elasticsearch:7.9.3
    
    • 1

    2设置 max_map_count
    必须修改系统参数 max_map_count,否则 Elasticsearch 无法启动:

    在 /etc/sysctl.conf 文件中添加 vm.max_map_count=262144

    echo 'vm.max_map_count=262144' >>/etc/sysctl.conf
    
    • 1

    查看上面语句是否添加成功

    cat /etc/sysctl.conf
    
    • 1

    准备虚拟网络和挂载目录

    创建虚拟网络

    docker network create es-net

    node1 的挂载目录

    mkdir -p -m 777 /var/lib/es/node1/plugins
    mkdir -p -m 777 /var/lib/es/node1/data
    
    • 1
    • 2

    node2 的挂载目录

    mkdir -p -m 777 /var/lib/es/node2/plugins
    mkdir -p -m 777 /var/lib/es/node2/data
    
    • 1
    • 2

    node3 的挂载目录

    mkdir -p -m 777 /var/lib/es/node3/plugins
    mkdir -p -m 777 /var/lib/es/node3/data
    
    • 1
    • 2

    在这里插入图片描述

    环境变量说明
    node.name节点在集群中的唯一名称
    node.master可已被选举为主节点
    network.host当前节点的地址
    discovery.seed_hosts集群中其他节点的地址列表
    cluster.initial_master_nodes候选的主节点地址列表
    cluster.name集群名
    ES_JAVA_OPTSjava虚拟机参数

    启动 Elasticsearch 集群
    node1

    docker run -d   --name=node1   --restart=always   --net es-net   -p 9200:9200   -p 9300:9300   -v /var/lib/es/node1/plugins:/usr/share/elasticsearch/plugins   -v /var/lib/es/node1/data:/usr/share/elasticsearch/data   -e node.name=node1   -e node.master=true   -e network.host=node1   -e discovery.seed_hosts=node1,node2,node3   -e cluster.initial_master_nodes=node1   -e cluster.name=es-cluster   -e "ES_JAVA_OPTS=-Xms256m -Xmx256m"   elasticsearch:7.9.3
    
    • 1

    node2

    docker run -d   --name=node2   --restart=always   --net es-net   -p 9201:9200   -p 9301:9300   -v /var/lib/es/node2/plugins:/usr/share/elasticsearch/plugins   -v /var/lib/es/node2/data:/usr/share/elasticsearch/data   -e node.name=node2   -e node.master=true   -e network.host=node2   -e discovery.seed_hosts=node1,node2,node3   -e cluster.initial_master_nodes=node1   -e cluster.name=es-cluster   -e "ES_JAVA_OPTS=-Xms256m -Xmx256m"   elasticsearch:7.9.3
    
    • 1

    node3

    docker run -d   --name=node3   --restart=always   --net es-net   -p 9202:9200   -p 9302:9300   -v /var/lib/es/node3/plugins:/usr/share/elasticsearch/plugins   -v /var/lib/es/node3/data:/usr/share/elasticsearch/data   -e node.name=node3   -e node.master=true   -e network.host=node3   -e discovery.seed_hosts=node1,node2,node3   -e cluster.initial_master_nodes=node1   -e cluster.name=es-cluster   -e "ES_JAVA_OPTS=-Xms256m -Xmx256m"   elasticsearch:7.9.3
    
    • 1

    查看集群

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

    设置elasticsearch-head

    docker run -d     --name=elasticsearch-head     -p 9100:9100     -m 512m     --memory-swap=1024m     mobz/elasticsearch-head:5
    
    • 1

    在这里插入图片描述

    集群配置之后可能存在连接不上elasticsearch-head的情况,需要到三个集群的容器里边设置下跨域的问题
    
    • 1

    进入到节点容器中的docker exec -it node2 /bin/bash(node2 是节点名称)
    找到elasticsearch.yml进去修改下内容,每个节点都需要修改

    在这里插入图片描述
    在这里插入图片描述
    增加这两句

    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
    • 1
    • 2
  • 相关阅读:
    武汉新时标文化传媒有限公司“土味”下的视频平权化
    Shell入门笔记:Linux批量提取文件名/shel文件名提取日期/NCL批量读取文件(shell脚本结合)
    接口测试--参数实现MD5加密签名规则
    set和map
    说一说 程序员的代码编辑器比较 vscode source insight vim那些年用过的IDE
    一次不规范HTTP请求引发的nginx响应400问题分析与解决
    预编译、函数变量提升
    postman在ubuntu下报gpu-disable
    Hadoop之HDFS分布式文件系统
    饲料行业调研:2022年饲料和水产饲料市场发展前景与市场趋势分析
  • 原文地址:https://blog.csdn.net/qq_41136963/article/details/125892568