写点什么

大数据 -170 Elasticsearch 7.3.0 三节点集群实战:目录 / 参数 / 启动到联机

作者:武子康
  • 2025-12-01
    山东
  • 本文字数:2222 字

    阅读完需:约 7 分钟

大数据-170 Elasticsearch 7.3.0 三节点集群实战:目录/参数/启动到联机

TL;DR

  • 场景:三台 Linux 机器部署 Elasticsearch 7.3.0,多节点联机与系统参数校正。

  • 结论:按目录权限→系统内核/limits→ES 配置→分发→启动顺序执行,能稳定形成集群。

  • 产出:可复用的命令清单、最小化配置模板、常见错误定位与修复清单。


版本矩阵

文件夹设置

三台机器都要执行,建立文件夹,这里是 日志、数据等内容。


mkdir -p /opt/servers/esmkdir -p /opt/servers/es/datamkdir -p /opt/servers/es/logs
chown -R es_server /opt/servers/eschown -R es_server /opt/servers/es/datachown -R es_server /opt/servers/es/logs
复制代码


复制项目

我们目前有三台机器,上节我们完成了一台机器的配置。现在我们把三台机器都安装上 ES 的环境,你可以每台都下载,或者使用同步工具来同步。


rsync-script /opt/software/elasticsearch-7.3.0-linux-x86_64.tar.gz
复制代码

h121 主机

h121 是主机,这里是之前下载的。


cd /opt/softwarewget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz
复制代码


tar -zxvf elasticsearch-7.3.0-linux-x86_64.tar.gzmv elasticsearch-7.3.0 ../servers/
复制代码


处理完的结果如下图所示:


创建用户

三台机器都要设置对了,我的账号和密码是一样的,都是 es_server。


useradd es_serverpasswd es_server
复制代码

文件夹设置

三台机器都要执行,建立文件夹,这里是 日志、数据等内容。


mkdir -p /opt/servers/esmkdir -p /opt/servers/es/datamkdir -p /opt/servers/es/logs
chown -R es_server /opt/servers/eschown -R es_server /opt/servers/es/datachown -R es_server /opt/servers/es/logs
复制代码

目录权限

chown -R es_server /opt/servers/elasticsearch-7.3.0
复制代码


配置完的路径如下图所示:


sudo 权限

三台机器使用 root 用户执行 sudo 然后为 es 用户添加权限:


vim /etc/sudoers
复制代码


添加以下的内容:


es ALL=(ALL) ALL
复制代码


添加的截图如下图所示:


配置说明

elasticsearch.yml 配置文件说明如下:


修改配置

三台机器都要执行,我们需要修改配置文件信息:


cd /opt/servers/elasticsearch-7.3.0/configvim elasticsearch.yml
复制代码


修改配置的内容有如下这些:


# 集群名字cluster.name: wzkicu-es# 集群中当前的节点node.name: h121.wzk.icu# 数据目录path.data: /opt/servers/es/data# 日志目录path.logs: /opt/servers/es/logs# 当前主机的ip地址network.host: h121.wzk.icunetwork.bind_host: h121.wzk.icu# 这里如果网卡绑定的不对 可以写死你的公网IPnetwork.publish_host: 114.115.221.144
http.port: 9200# 初始化一个新的集群时需要此配置来选举mastercluster.initial_master_nodes: ["h121.wzk.icu","h122.wzk.icu","h123.wzk.icu"]# 写入候选主节点的设备地址discovery.seed_hosts: ["h121.wzk.icu", "h122.wzk.icu","h123.wzk.icu"]
复制代码

分发配置

为了保证三个文件的配置内容一致(手动修改 name 等除外),我们直接分发配置的整个文件夹过去:


rsync-script /opt/servers/elasticsearch-7.3.0/config
复制代码


这样可以防止认证等信息错误导致的不必要的错误,对应的配置内容如下,注意在 h122 和 h123 节点上,node.name 等内容要根据实际情况修改:



(注意:network 部分是比较容易出问题的,如果你出了问题,必须绑定的网卡不对,导致 IP 的问题等,那你需要向我这样配置,来指明绑定的地址等内容)(注意:如果你一切正常,那按之前的来就行,没有必要增加不必要的复杂度)


系统参数

记得和上节一样,修改 JVM 内存大小:


cd /opt/lagou/servers/es/elasticsearch/configvim jvm.options
复制代码


修改内存的参数:


-Xms2g-Xmx2g
复制代码


此外和上节一样,如果你没修改操作系统的限制,如果你启动报错的话,请回到上节,修改 limits 等参数配置。具体的内容如下:修改 sysctl.conf:


vim /etc/sysctl.conf
复制代码


末尾我们添加:


vm.max_map_count=655360
复制代码


修改的结果如下图所示:



执行 sysctl -p,让配置生效:


sysctl -p
复制代码


运行结果如下图所示:



继续修改:limits.conf,目的是修改 Linux 系统对文件描述符的限制级别:


vim /etc/security/limits.conf
复制代码


我们需要在末尾添加如下的内容:


* soft nofile 65536* hard nofile 65536* soft nproc 4096* hard nproc 4096
复制代码


截图如下所示:


启动服务

这里是启动,要发现错误的话,可以到 logs 目录下查看,我们在三台机器上都执行:


su es_server/opt/servers/elasticsearch-7.3.0/bin/elasticsearch -d
复制代码

h121

h121 启动 ES 服务,启动结果如下:



对应的网页内容:


h122

h123

访问集群

如果我们使用 Elasticsearch Head 工具查看,可以看到是集群的状态,对应的截图为:


错误速查

其他系列

🚀 AI 篇持续更新中(长期更新)

AI 炼丹日志-29 - 字节跳动 DeerFlow 深度研究框斜体样式架 私有部署 测试上手 架构研究,持续打造实用 AI 工具指南!AI 研究-127 Qwen2.5-Omni 深解:Thinker-Talker 双核、TMRoPE 与流式语音🔗 AI模块直达链接

💻 Java 篇持续更新中(长期更新)

Java-174 FastFDS 从单机到分布式文件存储:实战与架构取舍 MyBatis 已完结,Spring 已完结,Nginx 已完结,Tomcat 已完结,分布式服务已完结,Dubbo 已完结,MySQL 已完结,MongoDB 已完结,Neo4j 已完结,FastDFS 正在更新,深入浅出助你打牢基础!🔗 Java模块直达链接

📊 大数据板块已完成多项干货更新(300 篇):

包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈!大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT 案例 详解🔗 大数据模块直达链接

发布于: 刚刚阅读数: 6
用户头像

武子康

关注

永远好奇 无限进步 2019-04-14 加入

Hi, I'm Zikang,好奇心驱动的探索者 | INTJ / INFJ 我热爱探索一切值得深究的事物。对技术、成长、效率、认知、人生有着持续的好奇心和行动力。 坚信「飞轮效应」,相信每一次微小的积累,终将带来深远的改变。

评论

发布
暂无评论
大数据-170 Elasticsearch 7.3.0 三节点集群实战:目录/参数/启动到联机_Java_武子康_InfoQ写作社区