概述
服务器:CentOS 7 ES版本:5.6.5
本文默认前提单节点启动都一切正常
1.配置文件的修改:slave-1
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 0.0.0.0
cluster.name: pionner17
node.master: true
node.name: slave1
http.port: 8200
transport.tcp.port: 9301
discovery.zen.ping_timeout: 120s
client.transport.ping_timeout: 60s
discovery.zen.ping.unicast.hosts: ["192.168.0.110:9300","192.168.0.110:9302"]
discovery.zen.minimum_master_nodes: 2
解释:
1.1:http.cors.enabled: true 允许跨域访问,为了配合elasticsearch-head可视化ES界面
http.cors.allow-origin: "*" 允许所有地址跨域访问
1.2:network.host: 0.0.0.0 此项配置为了主机能访问虚拟机
1.3:cluster.name: pionner 非常重要,配置集群名称,所有节点必须一样,否则节点发现不了集群
1.4:node.master: true 表名此节点允许成为主节点
node.name: slave1 节点名称
1.5:http.port: 8200 节点在web上发布端口号,默认是9200,由于单机多节点配置,建议指定一个
transport.tcp.port: 9301 节点通信端口,由于ES各节点之间互相访问,默认9300,单机多节点建议指定
1.6:discovery.zen.ping_timeout: 120s 设置集群中自动发现其他节点时ping的超时时间,默认3s,网络比较差可以提高此 值,以防止发现其他节点时出错,发生脑裂。
client.transport.ping_timeout: 60s
1.7: discovery.zen.minimum_master_nodes: 2 规则为n/2+1,告诉该节点,其他可以作为主节点的个数
1.8:discovery.zen.ping.unicast.hosts: ["192.168.0.110:9300","192.168.0.110:9302"] 其他节点的地址端口号,注意端口号为 节点通信端口,不要配置成web发布端口了
slave -2 配置大同小异:
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 0.0.0.0
cluster.name: pionner17
node.master: true
node.name: slave2
http.port: 8300
transport.tcp.port: 9302
discovery.zen.ping_timeout: 120s
client.transport.ping_timeout: 60s
discovery.zen.ping.unicast.hosts: ["192.168.0.110:9300","192.168.0.110:9301"]
discovery.zen.minimum_master_nodes: 2
2.切换到非ROOT用户启动个节点:
可以发现,经过ES集群的自动选举,节点slave1为主节点,索引分片均匀的分配到各个节点上
3.宕机测试,将其中一个节点关闭,关闭主节点slave1:
slave1节点已经关闭,此时集群已经自动选举slave2为主节点:
此时集群健康已经变为yellow,表名部分分片,存在宕机不能正常访问风险,但现在不影响正常运行,观察右上方:集群健康值yellow(13 of 20),表名一共有20个分片,此时只有13个分片处于正常运行状态,仔细观察会发现此时索引分片也已经在节点上重新均匀分配,ES是分布式的
4.重新启动slave1,观察能否正常加入集群
此时,slave1启动成功并且成功加入集群,索引分片也已经重新均匀分布,集群健康值为green
结束:集群已经成功搭建,ES是分布式的,横向扩张非常方便
最后
以上就是文艺饼干为你收集整理的ElasticSearch基于单机多节点下的集群搭建的全部内容,希望文章能够帮你解决ElasticSearch基于单机多节点下的集群搭建所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复