深入解析 Elasticsearch 集群配置文件参数

在自建 Elasticsearch 集群时,我们需要通过 elasticsearch.yml 文件对节点角色、网络设置、集群发现和数据存储路径等进行灵活配置。配置项的合理设置对集群的稳定性、性能与扩展性影响深远。本文将以一个示例配置文件为蓝本,逐条解析各参数的含义与建议用法。

以下为示例配置文件片段(IP 地址与节点名称使用泛指占位,实际部署中请根据实际情况替换):

cluster.name: my-application
node.name: node-2
path.data: /data/data
path.logs: /data/logs
network.host: 0.0.0.0
network.publish_host: <NODE_IP>
node.attr.ip: <NODE_IP>
http.port: 9200
discovery.seed_hosts: ['<IP_1>', '<IP_2>', '<IP_3>', ...]
cluster.initial_master_nodes: ['node-1', 'node-2', 'node-3']
action.destructive_requires_name: true
node.roles: [master]

下面我们将逐项进行说明。


1. 集群与节点命名

cluster.name: my-application

  • 作用:定义集群的名称。
  • 含义:Elasticsearch 在同一网络中可以存在多个集群,通过给定独立的 cluster.name,可使节点只加入对应名称的集群。
  • 建议:为集群选择有意义的命名方案,便于在多集群环境中识别。

node.name: node-2

  • 作用:指定该节点在集群中的唯一名称。
  • 含义:人类可读的节点名称有助于在运维与监控中快速定位问题节点。
  • 建议:为节点名称使用统一规则(如 node-1、node-2)或使用有意义的别名。

2. 存储与日志路径

path.data: /data/data

  • 作用:定义存储 Elasticsearch 索引数据的目录。
  • 含义:此目录应有足够的磁盘容量和高 IO 性能。
  • 建议:在生产环境中使用独立存储卷(如 SSD),并确保权限和磁盘空间充足。

path.logs: /data/logs

  • 作用:定义 Elasticsearch 日志文件的存放路径。
  • 含义:日志有助于故障排查与审计分析。
  • 建议:单独的日志目录便于日志轮转和监控,确保不与数据目录混用,以便更好地管理。

3. 网络配置

network.host: 0.0.0.0

  • 作用:设置 Elasticsearch 监听的网络接口地址。
  • 含义:0.0.0.0 表示监听所有网卡的 IP 地址,以便节点对集群内或外部请求开放访问。
  • 建议:生产中可能希望更严格的访问控制,可设置为内网 IP 或使用防火墙限制访问。

network.publish_host: <NODE_IP>

  • 作用:节点将该 IP 通告给集群中的其他节点作为其可访问地址。
  • 含义:当集群节点相互通信时,将使用 publish_host 指定的地址来连接。
  • 建议:确保此 IP 为集群内其他节点可访问的稳定内网地址。

node.attr.ip: <NODE_IP>

  • 作用:为节点添加自定义属性(如 ip 属性),在做 shard 分配或路由策略时可利用该属性。
  • 含义:属性标签可在 Elasticsearch 中用于 shard 分配过滤(allocation filtering),从而把数据分配到特定节点上。
  • 建议:仅在有高级调度和部署策略需求时使用此特性。

http.port: 9200

  • 作用:指定 Elasticsearch HTTP 接口监听的端口(用于查询、索引和 REST API 访问)。
  • 建议:默认是 9200,可根据需要更改。确保安全组/防火墙已开放此端口。

4. 集群发现与初始配置

discovery.seed_hosts: ['<IP_1>', '<IP_2>', '<IP_3>', ...]

  • 作用:定义最初用于集群发现的节点列表。
  • 含义:当新加入的节点启动时,会连接此列表中的种子节点以获取集群信息,并与主节点通信。
  • 建议:列出集群中多个已知节点的内网 IP 地址,可提升集群发现的可靠性。

cluster.initial_master_nodes: ['node-1', 'node-2', 'node-3']

  • 作用:在首次启动集群或全新集群节点时定义初始主节点投票成员。
  • 含义:通过此配置,Elasticsearch 能在第一次启动时选举出主节点,避免集群处于无主状态。
  • 建议:只在全新部署集群时设置,一旦集群形成后,通常无需再次修改。

5. 安全与危险操作限制

action.destructive_requires_name: true

  • 作用:防止在执行删除索引操作时使用通配符(如 _all*)导致误删所有索引。
  • 含义:要求对 destructive 操作(如 DELETE /index*)明确指定索引名称,提升数据安全性。
  • 建议:在生产环境中务必开启该设置,以减少误操作风险。

6. 节点角色配置

node.roles: [master]

  • 作用:指定节点角色,如 masterdataingest 等。此处仅以 master 为例。
  • 含义:主节点负责集群元数据管理、节点故障检测和分片分配决策,而数据节点负责存储和查询数据,ingest 节点负责预处理数据管道。
  • 建议:将节点角色分离有助于提升集群稳定性和性能(如在大型集群中,有专门的 master-only 节点)。根据实际需求设置适合的角色组合。

总结

通过上面的参数解析,我们可以看出 elasticsearch.yml 文件对 Elasticsearch 集群运行行为有着关键影响。从基础的集群和节点命名,到数据和日志存储,再到网络配置和集群发现机制,每个参数都与集群的稳定性、可扩展性和安全性息息相关。

在实践中,请根据以下建议进行配置:

  1. 清晰定义集群和节点名称:易于识别和管理。
  2. 独立存储数据与日志:为数据提供高性能与安全的持久化存储。
  3. 安全的网络设置:使用内网 IP 作为 publish_host,根据需要限制访问。
  4. 合理的发现和主节点配置:确保集群在初次启动时能正常选举主节点,并有足够的 seed 节点进行自动发现。
  5. 安全保护措施:开启 action.destructive_requires_name 避免误操作。
  6. 明确分配节点角色:根据业务规模和查询/索引需求进行角色分离,提升集群性能和可靠性。

通过理解并合理配置这些参数,您将能够搭建一个高效、稳定且易于扩展的 Elasticsearch 集群,为上层应用和数据分析业务提供坚实基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/939557.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UDP网络编程套接

目录 本文核心 预备知识 1.端口号 认识TCP协议 认识UDP协议 网络字节序 socket编程接口 sockaddr结构 UDP套接字编程 服务端 客户端 TCP与UDP传输的区别 可靠性&#xff1a; 传输方式&#xff1a; 用途&#xff1a; 头部开销&#xff1a; 速度&#xff1a; li…

MyBatis-Plus中isNull与SQL语法详解:处理空值的正确姿势

目录 前言1. 探讨2. 基本知识3. 总结 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 基本的Java知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#x…

EGO Swarm翻译

目录 摘要 Ⅰ 介绍 Ⅱ 相关工作 A . 单四旋翼局部规划 B . 拓扑规划 C. 分布式无人机集群 Ⅲ 基于梯度的局部规划隐式拓扑轨迹生成 A.无需ESDF梯度的局部路径规划 B.隐式拓扑轨迹生成 Ⅳ 无人机集群导航 A 机间避碰 B. 定位漂移补偿 C. 从深度图像中去除agent Ⅴ …

电商数据采集电商,行业数据分析,平台数据获取|稳定的API接口数据

电商数据采集可以通过多种方式完成&#xff0c;其中包括人工采集、使用电商平台提供的API接口、以及利用爬虫技术等自动化工具。以下是一些常用的电商数据采集方法&#xff1a; 人工采集&#xff1a;人工采集主要是通过基本的“复制粘贴”的方式在电商平台上进行数据的收集&am…

PostgreSQL和Postgis安装

Windows下PostgreSQL和对应的版本的Postgis安装 PostgreSQL安装 1、官网下载地址 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 2、根据自己的系统下载完成&#xff0c;Windows下可以直接傻瓜式安装就OK 建议不要通过自带的这个程序安装postgis,…

代码开发相关操作

使用Vue项目管理器创建项目&#xff1a;&#xff08;vue脚手架安装一次就可以全局使用&#xff09; windowR打开命令窗口&#xff0c;输入vue ui&#xff0c;进入GUI页面&#xff0c;点击创建-> 设置项目名称&#xff0c;在初始化git下面输入&#xff1a;init project&…

Vulnhub DC-6靶机攻击实战(一)

导语   之前的分享中我们介绍了关于Vulnhub虚拟机前五个机器的攻防演练测试,接下来我们继续分享Vulnhub DC-6靶机攻击实战。 文章目录 搭建测试环境第一步、信息采集第二步、wpscan爆破第三步、开始查找其他的用户第四步、提权总结搭建测试环境 首先需要从Vulnhub官网中下载…

深度学习之超分辨率算法——FRCNN

– 对之前SRCNN算法的改进 输出层采用转置卷积层放大尺寸&#xff0c;这样可以直接将低分辨率图片输入模型中&#xff0c;解决了输入尺度问题。改变特征维数&#xff0c;使用更小的卷积核和使用更多的映射层。卷积核更小&#xff0c;加入了更多的激活层。共享其中的映射层&…

深度学习从入门到精通——图像分割实战DeeplabV3

DeeplabV3算法 参数配置关于数据集的配置训练集参数 数据预处理模块DataSet构建模块测试一下数据集去正则化模型加载模块DeepLABV3 参数配置 关于数据集的配置 parser argparse.ArgumentParser()# Datset Optionsparser.add_argument("--data_root", typestr, defa…

大数据操作实验一

1.Postgresql 1.1 数据库的对象创建 1.1.1 创建数据库(Database) 鼠标右键database进行创建 1.1.2 创建图(Schema) 鼠标右键schema&#xff0c;然后创建schema图纸 1.1.3 创建表(Table) 鼠标右键Table&#xff0c;创建表 1.2数据库实列化 1.2.1 实列化静态数据 提…

IDEA2024如何创建一个普通的Java Web项目工程(JSP)

本章教程,主要介绍如何在IDEA2024 专业版本中,创建一个普通的Java Web项目。 一、新建项目 二、配置项目 依次点击File——Project Structure——Modules 修改路径中的web为webapp,然后点击Create Artifact默认保存。 至此,一个基础的Java web就创建完成了。

Linux下mysql 8.0安装教程

本文介绍了如何在Linux下安装MySQL8.0,供大家参考,具体内容如下 准备工作: mysql8.0 rpm文件 测试工具(比如 idea的database工具) 安装步骤: 1. 下载mysql的repo源,下载地址: 进入Linux系统,输入指令: 1 wgethttps://dev.mysql.com/get/mysql80-community-rele…

libaom 源码分析:熵编码模块介绍

AV1 熵编码原理介绍 关于AV1 熵编码原理介绍可以参考:AV1 编码标准熵编码技术概述libaom 熵编码相关源码介绍 函数流程图 核心函数介绍 av1_pack_bitstream 函数:该函数负责将编码后的数据打包成符合 AV1 标准的比特流格式;包括写入序列头 OBU 的函数 av1_write_obu_header…

[数据结构#1] 并查集 | FindRoot | Union | 优化 | 应用

目录 1. 并查集原理 问题背景 名称与编号映射 数据结构设计 2. 并查集基本操作 (1) 初始化 (2) 查询根节点 (FindRoot) (3) 合并集合 (Union) (4) 集合操作总结 并查集优化 (1) 路径压缩 (2) 按秩合并 3. 并查集的应用 (1) 统计省份数量 (2) 判断等式方程是否成…

Centos创建共享文件夹拉取文件

1.打开VMware程序&#xff0c;鼠标右检你的虚拟机&#xff0c;打开设置 2.点击选项——共享文件夹——总是启用 点击添加&#xff0c;设置你想要共享的文件夹在pc上的路径&#xff08;我这里已经添加过了就不加了&#xff09; 注意不要中文&#xff0c;建议用share&#xff0c…

Element@2.15.14-tree checkStrictly 状态实现父项联动子项,实现节点自定义编辑、新增、删除功能

背景&#xff1a;现在有一个新需求&#xff0c;需要借助树结构来实现词库的分类管理&#xff0c;树的节点是不同的分类&#xff0c;不同的分类可以有自己的词库&#xff0c;所以父子节点是互不影响的&#xff1b;同样为了选择的方便性&#xff0c;提出了新需求&#xff0c;选择…

java版电子招投标采购|投标|评标|竞标|邀标|评审招投标系统源码

招投标管理系统是一款适用于招标代理、政府采购、企业采购和工程交易等领域的企业级应用平台。该平台以项目为主线&#xff0c;从项目立项到项目归档&#xff0c;实现了全流程的高效沟通和协作。通过该平台&#xff0c;用户可以实时共享项目数据信息&#xff0c;实现规范化管理…

【Verilog HDL 入门教程】 —— 学长带你学Verilog(基础篇)

文章目录 一、Verilog HDL 概述1、Verilog HDL 是什么2、Verilog HDL产生的背景3、Verilog HDL 和 VHDL的区别 二、Verilog HDL 基础知识1、Verilog HDL 语言要素1.1、命名规则1.2、注释符1.3、关键字1.4、数值1.4.1、整数及其表示1.4.2、实数及其表示1.4.3、字符串及其表示 2、…

龙迅#LT7911E适用于EDP/DP/TPYE-C转MIPIDSI应用,支持图像处理功能,内置I2C,主应用副屏显示,投屏领域!

1. 描述 LT7911E 是一款高性能 eDP 转 MIPI D-PHY 转换器&#xff0c;旨在将 eDP 源连接到 MIPI 显示面板。 LT7911E 集成了一个符合 eDP1.4 标准的接收器&#xff0c;支持 1.62Gbps 至 5.67Gbps 的输入数据&#xff0c;以 270Mbps 的递增步长&#xff0c;以及一个 2 端口 D…

《算法SM9》题目

判断题 SM9密码算法系统参数由KGC选择。 A.正确 B.错误 正确答案A 多项选择题 SM9密码算法KGC是负责&#xff08; &#xff09;的可信机构。 A.选择系统参数 B.生成主密钥 C.生成用户标识 D.生成用户私钥 正确答案ABD 判断题 SM9密钥封装机制封装的秘密密钥是根据…