es 简单集群搭建,版本8.6.2

Node-1 配置:

yaml 复制代码
# elasticsearch.yml for Node-1

cluster.name: my-test-cluster
node.name: node-1
path.data: /path/to/data/node-1
path.logs: /path/to/logs/node-1
network.host: 127.0.0.1
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["127.0.0.1:9301", "127.0.0.1:9302"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]

Node-2 配置:

yaml 复制代码
# elasticsearch.yml for Node-2

cluster.name: my-test-cluster
node.name: node-2
path.data: /path/to/data/node-2
path.logs: /path/to/logs/node-2
network.host: 127.0.0.1
http.port: 9201
transport.port: 9301
discovery.seed_hosts: ["127.0.0.1:9300", "127.0.0.1:9302"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]

Node-3 配置:

yaml 复制代码
# elasticsearch.yml for Node-3

cluster.name: my-test-cluster
node.name: node-3
path.data: /path/to/data/node-3
path.logs: /path/to/logs/node-3
network.host: 127.0.0.1
http.port: 9202
transport.port: 9302
discovery.seed_hosts: ["127.0.0.1:9300", "127.0.0.1:9301"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]

请注意以下几点:

  • 节点名称 (node.name): 每个节点的名称应该是唯一的。

  • 数据目录 (path.data): 每个节点的数据目录应该是独立的,以防止节点之间的数据冲突。

  • HTTP 端口 (http.port): 每个节点的 HTTP 端口应该是唯一的。

  • 传输端口 (transport.port): 每个节点的传输端口应该是唯一的。

  • 发现种子主机 (discovery.seed_hosts): 每个节点的发现种子主机应该包含其他节点的地址和端口。

  • 初始主节点 (cluster.initial_master_nodes): 所有节点的此设置应该包含集群中的一个或多个节点的名称,用于确定初始主节点。在上述配置中,node-1 是初始主节点。

以上由chat gpt生成,下面是踩的坑

实践中遇到的问题
bash 复制代码
can't add node 
{node-3}{O5Ruh7M4Q9qfab0KqZYQ5g}{T2m2C0h1TkitZVddABjv3A}{node-3}{127.0.0.1}{127.0.0.1:9302}{cdfhilmrstw}{ml.machine_memory=34221711360, ml.allocated_processors=12, ml.max_jvm_size=4294967296, ml.allocated_processors_double=12.0, xpack.installed=true}, 
found existing node 
{node-2}{O5Ruh7M4Q9qfab0KqZYQ5g}{vMqqqsdlS7aWl1T1jtCKTQ}{node-2}{127.0.0.1}{127.0.0.1:9301}{cdfhilmrstw}{ml.machine_memory=34221711360, ml.allocated_processors=12, ml.max_jvm_size=4294967296, ml.allocated_processors_double=12.0, xpack.installed=true} 
with the same id but is a different node instance
原因及解决办法

原因就是我在启动es两个节点启动成功之后,为了省事 ,复制 node-2的目录。

然后只修改了配置文件elasticsearch.yml,而没有删除node-2 启动时生成的数据。

导致集群中唯一标识节点node.id 重复了

node.id 是在es第一次启动时自动生成的uuid .

解决办法:删除es目录下的data目录,重新生成它的 node.id

相关推荐
Elasticsearch3 小时前
认识 Elastic® nightshift AI SRE,你的全天候 SRE 同事
elasticsearch
Elasticsearch4 小时前
我们如何构建 Context Engine,将 agent 的 token 使用量降低 71%
elasticsearch
鱼宵5 小时前
Spring AI 生产化改造:记忆落 Redis、向量落 ES,重启再也不丢
人工智能·redis·spring·elasticsearch·springai
骑士雄师5 小时前
rag的具体案例:通过es在意图识别的时候进行个命中。
大数据·elasticsearch·搜索引擎
vx_Biye_Design7 小时前
flask学生课程笔记共享系统29026-计算机课程设计、毕业设计
java·javascript·spring boot·后端·elasticsearch·flask·课程设计
Elastic 中国社区官方博客7 小时前
AWS 自动化根因分析:从 CloudWatch 告警到完成故障诊断,仅需 36 秒
大数据·运维·elasticsearch·自动化·aws
诚丞成10 小时前
ELK日志分析:Elasticsearch索引、Logstash接入与Kibana可视化
elk·elasticsearch·jenkins
Elasticsearch19 小时前
Elastic 被评为 2026 年 Gartner®《企业 AI 搜索魔力象限™》领导者
elasticsearch
ly76891 天前
Elasticsearch 分片分配与再平衡的底层逻辑:从 allocation decider 到集群扩容抖动
大数据·elasticsearch·搜索引擎·集群扩容·分片分配·磁盘水位线
Elasticsearch1 天前
使用 Lucene 搜索你的 beans —— Facets
elasticsearch