Elasticsearch集群角色类型node.master及node.data

摘要:
在Elastic搜索中,ES有三个角色:主机、数据和客户端。这三个角色由节点控制。主节点。在弹性搜索中也是如此。yml配置文件。如果弹性搜索的节点角色信息未修改,则默认为节点。master:true,node Data:true默认情况下,es集群中的每个节点都有资格成为主节点,存储数据,并提供查询服务、负载平衡、数据整合和其他服务。node.master:truenode。数据:false第三种类型是数据节点。第三种类型是数据节点。此节点仅存储数据,不具备成为主节点的资格。它只存储数据;需要在集群中单独设置几个这样的节点来存储数据。

在Elasticsearch当中,ES分为三种角色:master、data、client。
三种角色由elasticsearch.yml配置文件中的node.master、node.true来控制。
如果不修改elasticsearch的节点角色信息,那么默认就是node.master: true、node.data: true
默认情况下,es集群中的每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务,负载均衡以及数据合并等服务。在高并发的场景下集群容易出现负载过高问题。

角色划分:

master:该节点不和应用创建连接,主要用于元数据(metadata)的处理,比如索引的新增、删除、分片分配等,master节点不占用io和CPU,内存使用量一般
data:该节点和索引应用创建连接、接收索引请求,该节点真正存储数据,ES集群的性能取决于该节点的个数(每个节点最优配置的情况下),data节点会占用大量的CPU、io和内存。
client:该节点和检索应用创建连接、接受检索请求,但其本身不负责存储数据,可当负责均衡节点,client节点不占用io、cpu和内存。

各节点间的关系

master:master节点具备主节点的选举权,有资格成为主节点,主节点控制整个集群的元数据。
data:data节点的分片执行查询语句获得查询结果后将结果反馈给client。此过程较消耗硬件资源。
client:client节点接受搜索请求后将请求转发到与查询条件相关的多个data节点的分片上,然后多个data节点的分片执行查询语句或者查询结果再返回给client节点,client来把各个data节点的返回结果进行整合、排序等一系列操作后再将最终结果返回给用户请求。

资源规划

master节点:ES如果做集群的话Master节点至少三台服务器或者三个Master实例加入相同集群,三个Master节点最多只能故障一台Master节点,亲测,如果故障两个Master节点,ES将无法组成集群。
data节点:单个索引在一个data节点上分片数保持在3个以内;每1GB堆内存对应集群的分片保持在20个以内;每个分片不要超过30G;
client节点:增加client节点可增加检索并发,但检索的速度还是取决于查询所命中的分片个数以及分片中的数据量。
data节点经验:

如果单索引每个节点可支撑90G数据,依此可计算出所需data节点数 。
如果是多索引按照单个data节点jvm内存最大30G来计算,一个节点的分片保持在600个以内,存储保持在18T以内。
主机的cpu、io固定,建议一台主机只部署一个data节点,不同角色节点独立部署,方便扩容
每条数据保持在2k以下索引性能大约3000-5000条/s/data节点,增加data节点数可大幅度增加索引速率,节点数与索引效率的增长关系呈抛物线形状​

ES的四种集群角色

node.master: true #主节点;允许节点是否可以成为一个master节点,ES是默认集群中的第一台机器成为master,如果这台机器停止就会重新选举。(默认开启)
node.data: true #数据节点;允许该节点存储索引数据(默认开启)
上面这两个属性可以有四种组合方式:

第一种:主节点+数据节点

第一种为ES默认选项,以下两个值都为true,该节点既有成为master的资格还要存储数据,如果该节点被选为了真正的master,还要存储数据,那么该节点的压力相对来说就较大了,生产中不建议这样,即成为了主节点还成为了数据节点。

node.master: true
node.data: true

第二种:主节点

第二种为主节点模式,该节点只有成为master节点的资格,并不正真存储数据,在没有成为master的情况下还可以进行集群内的请求转发,数据合并等功能,此选择在生产中为master节点。

node.master: true
node.data: false

第三种:数据节点

第三种为数据节点,该节点只存储数据,没有资格成为master,只做数据存储功能;在集群中需要单独设置几个这样的节点,用来存储数据。

node.master: false
node.data: true

第四种:客户端节点

第四种为client节点,该节点既没有成为master的资格,还不存储数据,主要是针对海量请求的时候可以进行负载均衡、数据合并、数据查询、请求转发等功能。

node.master: false
node.data: false

免责声明:文章转载自《Elasticsearch集群角色类型node.master及node.data》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇泛型依赖注入出现required a single bean, but 2 were foundyum安装git下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

kafka集群搭建(windows环境下)

一、简介 Kafka 是一个实现了分布式的、具有分区、以及复制的日志的一个服务。它通过一套独特的设计提供了消息系统中间件的功能。它是一种发布订阅功能的消息系统。 1、名词介绍 Message 消息,就是要发送的内容,一般包装成一个消息对象。   Topic 通俗来讲的话,就是放置“消息”的地方,也就是说消息投递的一个容器。假如把消息看作是信封的话,那么 T...

RocketMQ的消息发送及消费

RocketMQ消息支持的模式: 消息支持的模式分为三种:NormalProducer(普通同步),消息异步发送,OneWay。 消息同步发送: 普通消息的发送和接收在前面已经演示过了,在前面的案例中是基于同步消息发送模式。也就是说消息发送出去后,producer会等到broker回应后才能继续发送下一个消息. 消息异步发送: 异步发送是指发送方发出数据后...

Mysql主从同步在线实施步骤【适合大数据库从库配置】

Mysql主从同步在线实施步骤【适合大数据库从库配置】     MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一,但比较适合在新实例中实施,对于较大的数据库则存在停机等不可接受的问题,所以该方式并非理想的选择。使用innobackupex 则可以快速轻松的构建或修复mysql主从架构,该方式的好处是对主库无需备份期间导致...

DataFrame和python中数据结构互相转换

楔子 有时候DataFrame,我们不一定要保存成文件、或者入数据库,而是希望保存成其它的格式,比如字典、列表、json等等。当然,读取DataFrame也不一定非要从文件、或者数据库,根据现有的数据生成DataFrame也是可以的,那么该怎么做呢?我们来看一下 DataFrame转成python中的数据格式 转成json DataFrame转成json,...

转载:嵌入式C语言面试题(二)

BSS段 是“Block Started by Symbol”的缩写,意为“以符号开始的块”。   BSS是Unix链接器产生的未初始化数据段。其他的段分别是包含程序代码的“text”段和包含已初始化数据的“data”段。BSS段的变量只有名称和大小却没有值。此名后来被许多文件格式使用,包括PE。“以符号开始的块”指的是编译器处理未初始化数据的地方。BS...

Elasticsearch _reindex Alias使用

应用背景:1、当你的数据量过大,而你的索引最初创建的分片数量不足,导致数据入库较慢的情况,此时需要扩大分片的数量,此时可以尝试使用Reindex。 2、当数据的mapping需要修改,但是大量的数据已经导入到索引中了,重新导入数据到新的索引太耗时;但是在ES中,一个字段的mapping在定义并且导入数据之后是不能再修改的, 所以这种情况下也可以考虑尝试使用...