刨根问底 | Elasticsearch 5.X集群多节点角色配置深入详解

1、问题引出

ES5.X节点类型多了ingest节点类型。 针对3个节点、5个节点或更多节点的集群,如何配置节点角色才能使得系统性能最优呢?

2、ES2.X及之前版本节点角色概述

3、ES5.X节点角色清单

由于其他几种类型节点和用途都很好理解,无非主节点、数据节点、路由节点。

Ingest的用途: 1)Ingest节点和集群中的其他节点一样,但是它能够创建多个处理器管道,用以修改传入文档。类似 最常用的Logstash过滤器已被实现为处理器。

2)Ingest节点 可用于执行常见的数据转换和丰富。 处理器配置为管道。 在写入时,Ingest Node有20个内置处理器,例如grok,date,gsub,小写/大写,删除和重命名等。

3)在批量请求或索引操作之前,Ingest节点拦截请求,并对文档进行处理。 这样的处理器的一个例子可以是日期处理器,其用于解析字段中的日期。 另一个例子是转换处理器,它将字段值转换为目标类型,例如将字符串转换为整数。

4、ES5.X节点组合类型有多种类型,如何设置?

Elasticsearch的员工 Christian_Dahlqvist解读如下: 一个节点的缺省配置是:主节点+数据节点两属性为一身。对于3-5个节点的小集群来讲,通常让所有节点存储数据和具有获得主节点的资格。你可以将任何请求发送给任何节点,并且由于所有节点都具有集群状态的副本,它们知道如何路由请求。 通常只有较大的集群才能开始分离专用主节点、数据节点。 对于许多用户场景,路由节点根本不一定是必需的。 专用协调节点(也称为client节点或路由节点)从数据节点中消除了聚合/查询的请求解析和最终阶段,并允许他们专注于处理数据。 在多大程度上这对集群有好处将因情况而异。 通常我会说,在查询大量使用情况下路由节点更常见。

5、ES5.X集群中如何设置节点角色

对于3个节点、5个节点甚至更多节点角色的配置,Elasticsearch官网、国内外论坛、博客都没有明确的定义。

开发实战中,我的配置如下(仅供参考讨论)

注意:以上截图中的英文都改为小写。

我的思考如下: 1)对于Ingest节点,如果我们没有格式转换、类型转换等需求,直接设置为false。 2)3-5个节点属于轻量级集群,要保证主节点个数满足((节点数/2)+1)。 3)轻量级集群,节点的多重属性如:Master&Data设置为同一个节点可以理解的。 4)如果进一步优化,5节点可以将Master和Data再分离,取消client节点

6、小结

1)Elasticsearch博大精深,尤其新的5.X特性比较多,需要进一步深入研究; 2)集群的配置还有赖于进一步实践总结,再好的理论不去实践都是“花瓶”; 3)貌似图示划分了这么细、写了那么多,以官网为基准,也顺带调研了N多文档,但对Ingest节点的作用依然理解的不够深。希望大家评论探讨下。

参考: [1]https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html#data-node (5.x官网) [2] https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-node.html (2.x官网) [3] https://discuss.elastic.co/t/master-and-client-node-role-clarifications/104036/2 (ES员工回复) [4] https://blog.trifork.com/2017/02/02/elasticsearch-ingest-node/ (ingest节点使用详解) [5] https://wenchao.ren/archives/375 (官网原文翻译) [6] http://www.cnblogs.com/liang1101/p/7284205.html (国内的哥们思考过,但我认为不完全对)

原文发布于微信公众号 - 铭毅天下(gh_0475cf887cf7)

原文发表时间:2017-10-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

Golang 单元测试框架 gocheck 使用介绍

单元测试应该在的功能和参数上验证程序的正确性;单元测试过后,机器状态应该保持不变;单元测试的运行、通过、失败不依赖于别的测试,可以人为构造数据,以保持单元测试的...

2652
来自专栏Golang语言社区

深入Go语言网络库的基础实现

Go语言的出现,让我见到了一门语言把网络编程这件事情给做“正确”了,当然,除了Go语言以外,还有很多语言也把这件事情做”正确”了。我一直坚持着这样的理念——要做...

3167
来自专栏守望轩

Visual Studio 2008 每日提示(三十一)

#311、按Shift+F11跳出函数 原文链接:You can press Shift+F11 to step out of a function 操作步...

3787
来自专栏BeJavaGod

如何限制用户在某一时间段多次访问接口

要知道,如今很多平台的接口都是可以同时被门户网站,手机端,移动浏览器访问,因为接口是通用的,而为了安全起见,有些接口都会设置一个门槛,那就是限制访问次数,也就是...

3796
来自专栏大数据智能实战

Tensorflow protobuf版本报错问题解决(AttributeError: 'module' object has no attribute 'Default')

无意中发现TF跑不了,报的错误是: AttributeError: 'module' object has no attribute 'Default' 如下...

5687
来自专栏Golang语言社区

golang插件化方案

业务线的活动,每一次新活动都做独立项目开发,有大量重复代码,并且浪费数据服务的连接资源;排序服务也许要经常添加业务代码,目前是停服务发布……这些场景为了开发维护...

3852
来自专栏Bug生活2048

小程序云开发使用体验

这里发现直接更新有点慢,直接下载最新版然后覆盖比较快,打开最新的开发者工具之后会发现多了个云开发:

5812
来自专栏桥路_大数据

ElasticSearch配置外网访问,开放9200端口

5045
来自专栏专注 Java 基础分享

弄懂 JRE、JDK、JVM 之间的区别与联系

其实很多 Java 程序员在写了很多代码后,你问他 jre 和 jdk 之间有什么关系,jvm 又是什么东西,很多人不知所云。本篇不会讲述 jvm 底层是如何与...

3674
来自专栏Golang语言社区

Golang学习-第一篇 Golang的简单介绍及Windows环境下安装、部署

序言 这是本人简书第一篇文章,写的不到位之处,希望各位看客们谅解。 本人一直从事.NET的开发工作,最近在学习Golang,所以想着之前学习的过程中都没怎么好好...

3005

扫码关注云+社区

领取腾讯云代金券