Elasticsearch(ES)集群中节点的角色

96
SnailFast
2019.06.06 16:21 字数 535

        引用ES官网的一段话:

来自ES官网

        简单说就是可以给ES集群中的节点分配不同角色,每种角色干的活都不一样。

Master

        主要负责集群中索引的创建、删除以及数据的Rebalance等操作。Master不负责数据的索引和检索,所以负载较轻。当Master节点失联或者挂掉的时候,ES集群会自动从其他Master节点选举出一个Leader。为了防止脑裂,常常设置参数为discovery.zen.minimum_master_nodes=N/2+1,其中N为集群中Master节点的个数。建议集群中Master节点的个数为奇数个,如3个或者5个。

        设置一个几点为Master节点的方式如下:

        node.master: true

        node.data: false 

        node.ingest: false 

        search.remote.connect: false

Data Node

        主要负责集群中数据的索引和检索,一般压力比较大。建议和Master节点分开,避免因为Data Node节点出问题影响到Master节点。

        设置一个几点为Data Node节点的方式如下:

        node.master: false

        node.data: true

        node.ingest: false

        search.remote.connect: false

Coordinating Node

        对于协调节点,个人觉得官网说的很清楚,很简练。

来自官网
来自官网

Ingest Node

        Ingest node专门对索引的文档做预处理,实际中不常用,除非文档在索引之前有大量的预处理工作需要做。Ingest node设置如下:

node.master: false node.master: false         node.master: false

        node.data: false

        node.ingest: true

        search.remote.connect: false

Tribe Node

        Tribe Node主要用于跨级群透明访问。但是官方已经不建议使用了,在5.4.0版本以后已经废弃掉了,在7.0的版本中将移除该功能。在5.5版本以后建议使用Cross-cluster search替代Tribe Node。

总结:

        小集群可以不考虑结群节点的角色划分,大规模ES集群建议将Master Node、Data Node和Coordinating Node独立出来,每个节点各司其职。

Elasticsearch
Gupao