Elasticsearch-6.2.3windows单机集群搭建
Elasticsearch拷贝三份实例
elasticsearch-6.2.3 (master node)
elasticsearch-6.2.3-node2 (master node)
elasticsearch-6.2.3-node3 (data node)
如果是拷贝多份的elasticsearch-6.2.3的实例,请删除三份实例data目录中的node数据,
否则可能出现 with the same id but is a different node instance 的错误,因为拷贝的缘故。
可通过设置以下两个属性的值为true或false来创建ES的data节点和master节点:
Master node: node.master:true node.data:false
Data node: node.master:false node.data:true
Client node: node.master:false node.data:false
因为单机机器性能有限,最终选择 2 Master node 和 1 Data node 组合方式。
elasticsearch-6.2.3 (master node)配置
#集群名字
cluster.name: myes
# 节点名字
node.name: node-1
#是否作为主机
node.master: true
#是否作为数据节点
node.data: false
network.host: 127.0.0.1
http.port: 9200
transport.tcp.port: 9300
# --------------------------------- 发现 ----------------------------------
# 其他节点的地址端口号,注意端口号为 节点通信端口
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9302", "127.0.0.1:9303"]
# 有资格作为master的节点的最小数量
discovery.zen.minimum_master_nodes: 1
# 节点将会等待响应多久后超时
discovery.zen.fd.ping_timeout: 30s
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
elasticsearch-6.2.3-node2 (master node)配置
#集群名字
cluster.name: myes
# 节点名字
node.name: node-2
#是否作为主机
node.master: true
#是否作为数据节点
node.data: false
network.host: 127.0.0.1
http.port: 9202
transport.tcp.port: 9302
# --------------------------------- 发现 ----------------------------------
# 其他节点的地址端口号,注意端口号为 节点通信端口
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9302", "127.0.0.1:9303"]
# 有资格作为master的节点的最小数量
discovery.zen.minimum_master_nodes: 1
# 节点将会等待响应多久后超时
discovery.zen.fd.ping_timeout: 30s
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
elasticsearch-6.2.3-node3 (data node)配置
#集群名字
cluster.name: myes
# 节点名字
node.name: node-3
#是否作为主机
node.master: false
#是否作为数据节点
node.data: true
network.host: 127.0.0.1
http.port: 9203
transport.tcp.port: 9303
# --------------------------------- 发现 ----------------------------------
# 其他节点的地址端口号,注意端口号为 节点通信端口
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9302", "127.0.0.1:9303"]
# 有资格作为master的节点的最小数量
discovery.zen.minimum_master_nodes: 1
# 节点将会等待响应多久后超时
discovery.zen.fd.ping_timeout: 30s
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
分别启动三个实例,发现 node1 为主节点(注意★)
插入数据
关闭 node1 节点 【elasticsearch-6.2.3 (master node)】,发现 node2 变为主节点(注意★)
通过node2插入记录依然可以成功
重新启动node1,node1加入集群
通过node1插入记录
然后关闭node2,发现 node1 变为主节点(注意★)
最后解释1个属性
# 有资格作为master的节点的最小数量
discovery.zen.minimum_master_nodes: 1
经过测试发现三个节点为标准:
1 如果设置2个主节点,这个设置为1的话,1个主节点挂了,另外1个可以xuan选举为主节点
2 如果设置2个主节点,这个设置为2的话,1个主节点挂了,另外1个不可以选举为主节点
3 如果设置3个主节点,设置1,2都可以,但是主节点不参与文档的修改,只有数据节点参与文档的修改,所以三个节点都设置为主节点没意义