单台服务器部署双节点Elasticsearch配置
目标
在单台机器上部署两个 Elasticsearch 7.17.11 节点,并使它们组成一个集群,需要为每个节点进行单独的配置。
部署节点:
-
node1: 192.168.1.19:9200
-
node2: 192.168.1.19:9201
具体步骤:
1. 安装
下载并解压 Elasticsearch 7.17.11安装包。假设解压后的目录为 /data01/elasticsearch
。
2. 准备两个独立的实例目录
复制原始安装目录,为每个节点创建独立的目录:
cp -r /data01/elasticsearch /data01/node1
cp -r /data01/elasticsearch /data01/node2
3. 配置节点的 elasticsearch.yml
分别编辑两个实例的 config/elasticsearch.yml
文件。
节点 1 配置 (node1/config/elasticsearch.yml
)
cluster.name: my-application
node.name: node-1
path.data: /path/to/data/node1
path.logs: /path/to/logs/node1
network.host: 192.168.1.19
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.1.19:9300", "192.168.1.19:9301"]
cluster.initial_master_nodes: ["node-1", "node-2"]
节点 2 配置 (node2/config/elasticsearch.yml
)
cluster.name: my-application
node.name: node-2
path.data: /path/to/data/node2
path.logs: /path/to/logs/node2
network.host: 192.168.1.19
http.port: 9201
transport.port: 9301
discovery.seed_hosts: ["192.168.1.19:9300", "192.168.1.19:9301"]
cluster.initial_master_nodes: ["node-1", "node-2"]
4. 创建独立的数据和日志目录
为每个节点创建单独的数据和日志目录:
mkdir -p /path/to/data/node1 /path/to/data/node2
mkdir -p /path/to/logs/node1 /path/to/logs/node2
5. 启动两个节点
注意: 如果node1或者node2节点的data目录下有内容,需要删除。本人先使用单节点部署并且未修改默认data存放目录,在增加节点配置时未删除节点data目录下内容导致节点一直组不成集群。
分别启动两个节点:
# 启动节点 1
cd /data01
bin/elasticsearch -d
# 启动节点 2
cd /data01
bin/elasticsearch -d
6. 验证集群状态
检查节点列表
curl -X GET "127.0.0.1:9200/_cat/nodes?v"
如果显示两个节点 node1
和 node2
,说明集群配置成功。
注意事项
- 资源隔离:在单机多节点时,确保 CPU、内存和磁盘空间足够,否则可能导致性能问题。
- 端口冲突:每个节点的 HTTP 和传输端口必须唯一(如 9200/9300 和 9201/9301)。
- 集群规模:单机多节点通常用于开发测试,生产环境需要分布式部署。
- 避免分脑问题:确保
cluster.initial_master_nodes
包含所有主节点的名称,并且不要在配置中遗漏。
通过这些步骤,两个 Elasticsearch 节点应该能够组成一个单机集群,且能够正常工作。