- es通过不同的集群名来区分不同集群,默认名字"elasticsearch"
- 一个实例本质一个Java进程
- 默认所有节点是coordinating node,处理请求的节点
- 只有Master节点才能创建索引
- 节点启动后,默认为Data node(数据节点),由Master Node决定如何把分片分发到数据节点上
- es中规定,相同索引,主分片和副本不能分配在同一节点
- 启动es实例命令
'''
bin/elasticsearch -E node.name=xxx一node -E cluster.name=xxx一cluster -E path.data=xxx一data -E http.port=9200
'''
- master node职责:
1.处理创建/删 索引的请求
2.决定分片被分配到哪个节点
3.负责创建/删 索引
- master Eligible节点(master备选),master故障时,进行选举新Master节点,每个节点默认启动为Eligible节点。当集群内第一个EligibIe节点启动时,它将自己选举为master节点
- 集群状态
'''
1.所有节点的信息
2.所有的索引和其相关的Mapping和Setting信息
3.分片的路由信息
- 每个节点都保存了集群的状态信息,只有Master能修改
'''
- 选主过程(互相Ping对方,Node Id低的会被选举)
- 脑裂问题如何避免(角色分离,避免多角色节点负载问题)(加大失联时间discovery.zen.ping.timeout)(设置选举触发条件discovery.zen.minimum._master_nodes)