部署流程:
1. 准备三台elasticsearch服务器
创建elasticsearch-cluster文件夹,在内部复制三个elasticsearch服务,需要删除之前的elasticsearch中的data目录
2. 修改每台服务器配置
修改elasticsearch-cluster\node*\config\elasticsearch.yml配置文件
node1节点:
#节点1的配置信息:
#集群名称,保证唯一
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-1
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9200
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9300
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
node2节点:
#节点2的配置信息:
#集群名称,保证唯一
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-2
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9201
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9301
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
node3节点:
#节点3的配置信息:
#集群名称,保证唯一
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-3
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9202
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9302
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
3. 分别启动三个node节点,于是报错如下:
master not discovered yet, this node has not previously joined a bootstrapped
(v7+) cluster,and [cluster.initial_master_nodes] is empty on this node
意思是没有集群中没有初始化的主节点
原因及解决办法:
在版本6和更早的版本中,还有一些其他以discovery.zen.*开头的选项,允许你配置Zen Discovery的行为。其中一些设置不再有效,已被删除。其他的已经改名。如果一个参数已经被改名,那么它的旧名称在版本7中就被弃用,你需要调整配置来使用新名称。
新的集群协调子系统包括一个新的故障检测机制。这意味着 discovery.zen.fd.* 开头的Zen Discovery错误检测设置不再有效。大多数用户应该在版本7或更高版本中使用默认的故障检测配置,如果需要进行任何更改,可以使用cluster.fault_detection.
解决方案:修改三个yml配置文件
在三个yml配置文件中都加上这句配置即可
cluster.initial_master_nodes: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]
版权声明:本文为larry1648637120原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。