ElasticSearch基于单机多节点下的集群搭建

服务器: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用户启动个节点:

ElasticSearch基于单机多节点下的集群搭建_第1张图片

可以发现,经过ES集群的自动选举,节点slave1为主节点,索引分片均匀的分配到各个节点上

3.宕机测试,将其中一个节点关闭,关闭主节点slave1:

 

 slave1节点已经关闭,此时集群已经自动选举slave2为主节点:

ElasticSearch基于单机多节点下的集群搭建_第2张图片

此时集群健康已经变为yellow,表名部分分片,存在宕机不能正常访问风险,但现在不影响正常运行,观察右上方:集群健康值yellow(13 of 20),表名一共有20个分片,此时只有13个分片处于正常运行状态,仔细观察会发现此时索引分片也已经在节点上重新均匀分配,ES是分布式的

4.重新启动slave1,观察能否正常加入集群

ElasticSearch基于单机多节点下的集群搭建_第3张图片

此时,slave1启动成功并且成功加入集群,索引分片也已经重新均匀分布,集群健康值为green

结束:集群已经成功搭建,ES是分布式的,横向扩张非常方便

你可能感兴趣的:(ElasticSearch)