1、主节点:保存数据信息(meta data) 元数据;
描述数据的数据,客户端通过主节点获取真正的数据位置,到数据节点DataNode获取数据分片;
2、数据节点:只负责数据的读和写
3、负载均衡节点:当主节点连接的客户端过多,可以引入负载均衡节点;分担并发,既不是主节点,也不是数据节点
搭建另外两台es的服务器,配置好ik分词器 ,参照
Elasticsearch和ElasticsearchHead的安装与配置
和
Eslaticsearch整合IKAnalyzer分词器
安装完成后开始搭建集群
修改elasticsearch-5.5.2/config下的elasticsearch.yml
集群名称,必须一致,
cluster.name:elasticsearch
节点名称,不可以一样,这里按照node-1、node-2、node-3进行命名
node.name:node-1
把 bootstrap.memory_lock: false 注释放开
添加 bootstrap.system_call_filter: false
network.host: 10.9.39.13 是本机ip,一般我们会使用192.168.1.55这种,这里用的虚拟机所以是10.9.39.13
http.port: 9200 设置端口为9200
这里需要配置多个,为了演示非同一IP段,所以IP段不同
因为我们搭建了3台服务器用于演示,所以此处为三个服务器配置的network.host地址,
discovery.zen.ping.unicast.hosts: [“10.9.39.13”, “10.9.104.184”, “10.9.104.185”]
master集群中最小的master数量,集群都是过半投票制,所以3台服务器设置2个master节点,如果19台服务器可以设置5个master节点,因为设置的是最小master节点数量防止宕机过多。
discovery.zen.minimum_master_nodes: 2
重启3台服务器,集群节点自动发现其他节点初始化集群
可以通过Elasticsearch-head插件连接一个节点查看集群
脑裂:多个master集群管理同一个es的datanode节点集群,由于master间通信异常导致,整个集群被切分成了多个区域,不同区域间有可能因为不同master管理造成数据处理矛盾;形成了脑裂的情况;
防止脑裂办法:过半的master数量是有效的集群,一切没有过半master的集群整体无法提供有效的服务;
结论:无论脑裂如何发生,整个集群总会至多存在一个master的集体管理集群;