【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 network.host: 0.0.0.0 http.port: 9200 cluster.initial_master_nodes: ["node-1"] |
说明 |
主节点的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分