简介:
ElasticSearch的集群搭建相对比较简单,有别于Solr,ElasticSearch自身带有分布式协调管理功能,而Solr是利用Zookeeper进行分布式管理的。
部署环境:
单节点环境配置:见这篇
集群名:elastice
节点信息:
系统 | 节点名 | IP |
---|---|---|
Ubuntu16.04.3 | node-1 | 192.168.61.196 |
Ubuntu16.04.3 | node-2 | 192.168.61.197 |
Ubuntu16.04.3 | node-3 | 192.168.61.198 |
配置:
在ElasticSearch安装目录下找到config/elasticsearch.yml配置文件,修改如下信息:
cluster.name: elastice #集群名
node.name: node-1 #节点名
network.host: 192.168.61.196 #节点ip
discovery.zen.ping.unicast.hosts: ["192.168.61.196", "192.168.61.197", "192.168.61.198"]
discovery.zen.minimum_master_nodes: 2
配置项说明:
1、每个节点的集群名cluster.name必须相同
2、discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"]
设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。端口默认是9200,可以不填,如果是其他端口,则需要显式指定端口,比如:192.168.61.100:9202
3、discovery.zen.minimum_master_nodes
文档中的解释是:
Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
【为防止引发”脑裂“问题,一个节点需要看到的具有master节点资格的最小数量,然后才能在集群中做操作。值为:具有 master资格的节点的数量/2 + 1】
具有master资格是:node.master=true的节点
脑裂:
所谓脑裂问题(乱了、傻了的意思),就是同一个集群中的不同节点,对于集群的状态有了不一样的理解
集群配置详细说明:
#集群的名称
cluster.name: es6.2
#节点名称,其余两个节点分别为node-2 和node-3
node.name: node-1
#指定该节点是否有资格被选举成为master节点,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master
node.master: true
#允许该节点存储数据(默认开启)
node.data: true
#索引数据的存储路径
path.data: /usr/local/elk/elasticsearch/data
#日志文件的存储路径
path.logs: /usr/local/elk/elasticsearch/logs
#设置为true来锁住内存。因为内存交换到磁盘对服务器性能来说是致命的,当jvm开始swapping时es的效率会降低,所以要保证它不swap
bootstrap.memory_lock: true
#绑定的ip地址
network.host: 0.0.0.0
#设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
#Elasticsearch将绑定到可用的环回地址,并将扫描端口9300到9305以尝试连接到运行在同一台服务器上的其他节点。
#这提供了自动集群体验,而无需进行任何配置。数组设置或逗号分隔的设置。每个值的形式应该是host:port或host
#(如果没有设置,port默认设置会transport.profiles.default.port 回落到transport.tcp.port)。
#请注意,IPv6主机必须放在括号内。默认为127.0.0.1, [::1]
discovery.zen.ping.unicast.hosts: ["10.122.70.89", "10.122.70.144", "10.122.70.158"]
#如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 - 分裂的大脑 - 这将导致数据丢失
discovery.zen.minimum_master_nodes: 2
运行:
依次启动每个节点,在ElasticSearch Head插件中打开(Head插件安装),效果如下图:
集群状态:
green:所有主要分片和复制分片都可用
yellow:所有主要分片可用,但不是所有复制分片都可用
red:不是所有的主要分片都可用
增加索引:
在ElasticSearch-Head插件中,可以新建索引。
新建索引默认分片数为5,副本数为1