【CentOs7/Elasticsearch7.11.0】ES双机各一实例(一主一从)安装手顺


【前篇】

 请在了解了上述两篇再来尝试此篇,还有一些系统设置,jvm.options设置也在上面两篇表述。

另外为了简便起见,请使用命令#systemctl stop firewalld关闭两机的防火墙。

【目标】

在两个虚拟机上各建立一个ES节点组成一主一从的集群。

【难点】

在同一台机器上的节点只有集群名cluster.name相同会自动组成集群。

当集群的节点运行在不同的机器上时,在单播模式下,我们需要为ES配置一些它应该去尝试连接的节点列表。

以上两句文字来自牛冬编著的《Elasticsearch实战与原理解析》,电子工业出版社出版,P65页。本文的灵感也是从此页获得。

用自己的话说,当节点在不同机器上时,node真不知怎么去找别的节点,你得写明告诉它怎么找,这个配置就是:

discovery.zen.ping.unicast.hosts: ["192.168.X.y:9300",......]

【实现目标】

在主机上敲入 http://192.168.245.128:9200/_cat/nodes?v ,能出现

ip              heap.percent ram.percent cpu load_1m load_5m load_15m node.role  master name
192.168.245.128           28          93  29    2.75    3.19     2.44 cdhilmrstw *      node-1
192.168.245.129           20          93  11    0.71    0.90     0.64 cdhilrstw  -      node-2

这样的文字。

有些同学把两个独立节点分别运行起来了,然后去分别访问各自的9200端口,就宣称集群建成!岂不谬哉?

【主从配置】

  主机 从机
IP 192.168.245.128 192.168.245.129
节点名 node-1 node-2
配置

cluster.name: twins

node.name: node-1

network.host: 0.0.0.0

http.port: 9200

cluster.initial_master_nodes: ["node-1"]

 cluster.name: twins

node.name: node-2
node.master: false

network.host: 0.0.0.0

http.port: 9200

cluster.initial_master_nodes: ["node-1"]
discovery.zen.ping.unicast.hosts: ["192.168.245.128:9300"]

说明

主节点的master就是自己,所以写node-1就行;

单机多实例会知道去和本机的9300端口通讯,

询问是否是cluster.initial_master_nodes里指出的master节点,

所以也没问题。

不同ip时,

discovery.zen.ping.unicast.hosts列表里的机器端口会被访问,询问是否

cluster.initial_master_nodes里指出的master节点,是的话就成了。

 上面红色一句是从节点找到主节点的关键所在。

【结果】

END

PS:附上

http://192.168.245.128:9200/_cat/nodes?v 和 http://192.168.245.129:9200/_cat/nodes?v 的结果:

2022年2月24日19点53分

相关