elasticsearch - ElasticSearch - 将数据节点添加到现有集群。最佳做法是什么?
问题描述
我有一个 Elasticsearch 集群正在运行,它包含 3 个主节点和 5 个数据节点。版本是7.6.0。
主节点配置如下所示:
cluster.name: es-cluster
node.name: master-0[1-3]
bootstrap.memory_lock: true
node.master: true
node.voting_only: false
node.data: false
node.ingest: false
node.ml: false
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
http.port: 9200
network.host: 0.0.0.0
discovery.seed_hosts:
- IP-master-01:9300
- IP-master-02:9300
- IP-master-03:9300
- IP-data-01:9300
- IP-data-02:9300
- IP-data-03:9300
- IP-data-04:9300
- IP-data-05:9300
数据节点配置:
cluster.name: es-cluster
node.name: data-0[1-5]
bootstrap.memory_lock: true
node.data: true
node.master: false
node.voting_only: false
node.ingest: false
node.ml: false
cluster.remote.connect: false
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
http.port: 9200
network.host: 0.0.0.0
discovery.seed_hosts:
- IP-master-01:9300
- IP-master-02:9300
- IP-master-03:9300
- IP-data-01:9300
- IP-data-02:9300
- IP-data-03:9300
- IP-data-04:9300
- IP-data-05:9300
我将添加一个新的数据节点。请帮助我了解将节点添加到现有 ES 集群的最佳实践。
问题是关于参数discovery.seed_hosts。据我了解,所有 ES 节点都应该是相同的,所以就我而言,这意味着我应该添加以下内容:
- IP-data-06:9300
到所有ES节点的discovery.seed_hosts(当然也包括新创建的节点)。
但这是否意味着我必须在添加第 6 个数据节点后重新启动所有其他节点?否则,如何将相同的配置应用于所有 ES 节点?或者也许所有节点的相同 discovery.seed_hosts 根本不重要?
提前感谢您的澄清。
解决方案
你犯了一个小错误,discovery.seed_hosts
应该只有主合格节点,而不是所有节点。
由于您正在添加数据节点,因此您不需要将此节点添加到此配置中,您也可以从新数据节点中的此配置中删除所有不符合主节点资格的节点。
只需在所有数据节点中使用此配置。
cluster.name: es-cluster
node.name: data-X
bootstrap.memory_lock: true
node.data: true
node.master: false
node.voting_only: false
node.ingest: false
node.ml: false
cluster.remote.connect: false
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
http.port: 9200
network.host: 0.0.0.0
discovery.seed_hosts:
- IP-master-01:9300
- IP-master-02:9300
- IP-master-03:9300
现在不需要重新启动所有节点,但是当您计划这样做时,请修复您的配置并仅在discovery.seed_hosts
设置中保留符合主节点资格的节点。
推荐阅读
- asp.net - asp.net mvc (HttpWebRequest)WebRequest.Create Invalid URI 无法确定 URI 的格式
- python-2.7 - pysnmp not able to receive trap from different machine
- c# - 我如何更改猫类以支持我拥有的额外成员,以及如何制作一组猫
- macos - “标记和移动”Applescript 不再有效 (High Sierra)
- c# - 调用方法并将返回值分配给数组时,为什么C#在调用方法时使用数组引用?
- codeigniter - 使用本机 codeigniter 而不是 HTML 来选择日期
- xamarin.forms - StackLayout 按下事件
- python - 检查列表中的一个项目是否总是紧随其后 - Python
- awk - 用 NA 替换整个文件中的点而不改变数据结构
- html - 使用 CSS 在 Y 轴上滚动弹出对话框