# 实现ES集群单节点扩容到三节点

## 整体流程
在进行ES集群单节点扩容到三节点的操作前,我们需要确保已经部署了一个ES集群单节点。然后通过添加两个新的节点,使得ES集群扩容为三节点。以下是操作的具体步骤:

| 步骤 | 操作 |
| :---: | :--- |
| 1 | 准备两台新的服务器用于部署ES节点 |
| 2 | 安装配置Elasticsearch并加入集群 |
| 3 | 配置集群中的节点发现和通信 |

### 步骤一:准备两台新的服务器用于部署ES节点
首先,我们需要准备两台新的服务器,确保这两台服务器与原有ES节点服务器在同一个网络中,并且能够相互通信。

### 步骤二:安装配置Elasticsearch并加入集群
1. 在两台新服务器上安装Elasticsearch,可以通过以下命令进行安装:
```bash
sudo apt-get update
sudo apt-get install elasticsearch
```

2. 编辑Elasticsearch配置文件,指定集群名称和节点名称。在`/etc/elasticsearch/elasticsearch.yml`文件中添加以下配置:
```yaml
cluster.name: my_cluster
node.name: node-2 # 修改为当前节点的名称
network.host: 0.0.0.0
discovery.seed_hosts: ["", ""] # 填写原有节点和新加节点的IP地址
cluster.initial_master_nodes: ["node-1", "node-2"]
```

3. 启动Elasticsearch服务并设置开机自启:
```bash
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
```

### 步骤三:配置集群中的节点发现和通信
1. 在每个节点上执行以下命令,通过HTTP API添加新的节点到集群中:
```bash
curl -X POST "http://node-1-ip:9200/_cluster/settings" -H 'Content-Type: application/json' -d '{
"persistent": {
"discovery.zen.minimum_master_nodes": 2
}
}'
```

2. 检查集群状态,确保新节点成功加入集群:
```bash
curl -X GET "http://node-1-ip:9200/_cat/nodes?v"
```

## 总结
通过以上操作,我们成功将ES集群从单节点扩容到三节点。在实际操作中,需要注意网络配置、集群名称、节点名称等参数的设置以确保顺利完成集群扩容的操作。希朓这篇文章对你有所帮助,如果有任何问题请随时与我联系。