如何将多节点Elasticsearch集群的剩余节点调整为单节点集群
Elasticsearch 单节点集群调整操作步骤
操作前务必对Elasticsearch的数据目录、配置目录做全量备份,避免数据丢失
具体操作
- 停止当前运行的Elasticsearch进程
- 编辑
config/elasticsearch.yml配置文件,做以下修改:- 移除
discovery.seed_hosts配置中原有另外两个节点的地址,仅保留本机地址(如127.0.0.1或者节点实际IP),如果不需要对外暴露集群发现功能也可以直接删除该配置项 - 将
cluster.initial_master_nodes配置值修改为仅包含当前节点的节点名或IP,节点启动成功后可删除该配置项 - 新增配置
discovery.type: single-node,该参数适用于Elasticsearch 7及以上版本,会自动禁用集群发现、选主逻辑,强制运行在单节点模式 - 确认
node.master: true、node.data: true两个配置处于开启状态,保证单节点同时承担主节点、数据节点角色
- 移除
- 进入
path.data配置对应的Elasticsearch数据目录,删除目录下的_state文件夹,该文件夹存储了旧3节点集群的元数据信息,包含原有节点列表、选举相关状态,是之前修改配置重启不生效的核心原因 - 重启Elasticsearch进程
结果验证
执行命令curl http://127.0.0.1:9200/_cat/nodes?v(如果配置了端口、鉴权需要对应调整命令),返回结果中仅存在1个节点,且节点前带有*标识说明已当选主节点,即调整完成。
低版本兼容说明
如果你使用的是Elasticsearch 6及更早版本,没有discovery.type: single-node参数,需要额外修改discovery.zen.minimum_master_nodes: 1,同时确保discovery.zen.ping.unicast.hosts仅配置本机地址即可。
内容的提问来源于stack exchange,提问作者LF-DevJourney
相关产品推荐
相关产品推荐

