前言
我是在一台机器上配置多个节点,来做一个伪集群。真实的情况应该是多台服务器,每台服务器都作为一个节点,组成真正的集群。
部署ES
每台服务器都安装ES,并且保证版本是一致的(版本不一致的情况我没有尝试)。这里要注意,他们的属主属组都不能是root
我配置了3个节点,所有有3份ES的安装包。 暂时叫 a节点,b节点,c节点
配置ES
每个软件包里的config目录下的elasticsearch.yml都需要进行配置。
要特别注意 配置中的第九点
相关配置
1 集群名称:(必须一样)
cluster.name: quan
2 节点名称:(不能一样)
node.name: node-1 (a节点的配置)
node.name: node-2 (b节点的配置)
node.name: node-3 (c节点的配置)
3 数据和日志的存储位置(可以一样,可以不一样)
path.data: /data/es-data/1 (a节点的配置)
path.data: /data/es-data/2 (b节点的配置)
path.data: /data/es-data/3 (c节点的配置)
path.logs: /var/log/elasticsearch/1 (a节点的配置)
path.logs: /var/log/elasticsearch/2 (b节点的配置)
path.logs: /var/log/elasticsearch/3 (c节点的配置)
4 端口(不一样)
http.port: 9201 (a节点的配置)
http.port: 9202 (b节点的配置)
http.port: 9203 (c节点的配置)
5 内部节点之间沟通需要的端口(不一样)
http.port: 9301 (a节点的配置)
http.port: 9302 (b节点的配置)
http.port: 9303 (c节点的配置
6 是否有资格竞选主节点(根据实际情况,我的配置是3个节点全部设为true)
node.master: true
7 是否存储数据(根据实际情况,我的配置是3个节点全部设为true)
node.data: true
8 最大集群节点数
node.max_local_storage_nodes: 3
9 自动发现机制,配置静态主机列表以用作种子节点(我就简单理解为,能找到其他的节点)
☆☆☆☆☆重点☆☆☆☆☆
iscovery.zen.ping.unicast.hosts: ["172.16.0.5:9301","172.16.0.5:9302"] (a节点的配置)
iscovery.zen.ping.unicast.hosts: ["172.16.0.5:9300","172.16.0.5:9302"] (b节点的配置)
iscovery.zen.ping.unicast.hosts: ["172.16.0.5:9300","172.16.0.5:9301"] (c节点的配置)
这里的地址怎么来呢,请参考https://blog.youkuaiyun.com/weixin_34055910/article/details/91729223
10 其他配置默认就好
启动
配置完成后,分别启动ES就好,可以用head插件查看集群是否配置成功,我这里只启动了a节点和b节点。
可以看出 这个集群里有2个节点,node1和node2。到此,ES集群的配置就完成了。