当前位置: 首页 > news >正文

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

转自:https://blog.csdn.net/laoyang360/article/details/78290484

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再分离。

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 
(国内的哥们思考过,但我认为不完全对)

相关文章:

  • 在word中输入任意角度旋转图片
  • python怎么写可读性好的面向过程的长篇代码?
  • 第一节:.Net版基于WebSocket的聊天室样例
  • Leetcode 28 实现strStr()
  • 小程序开发之改变data中数组或对象的某一属性值
  • 跟鱼八学NDK开发 基于Cmake(三) 使用含有第三方动态库的自己编译好的.so
  • MVC-Model数据注解(三)-Remote验证的一个注意事项
  • Go语言编写的web管理平台生成框架
  • 如何对高管实施股权激励?
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • PhotoShop制作gif动态广告效果示例
  • 怎样轻松将SD卡照片数据恢复
  • [总结型] HADOOP HDFS BALANCER介绍及经验总结
  • 销售财务出身的创业者,占了95%,未来却可能被他打败
  • centos搭建FTP文件服务
  • JavaScript 如何正确处理 Unicode 编码问题!
  • [case10]使用RSQL实现端到端的动态查询
  • 【EOS】Cleos基础
  • leetcode388. Longest Absolute File Path
  • NSTimer学习笔记
  • overflow: hidden IE7无效
  • Python打包系统简单入门
  • storm drpc实例
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • Vim Clutch | 面向脚踏板编程……
  • vue总结
  • Vultr 教程目录
  • 从输入URL到页面加载发生了什么
  • 简单数学运算程序(不定期更新)
  • 老板让我十分钟上手nx-admin
  • 入口文件开始,分析Vue源码实现
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 算法-插入排序
  • 我看到的前端
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 正则与JS中的正则
  • 追踪解析 FutureTask 源码
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • # 安徽锐锋科技IDMS系统简介
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #162 (Div. 2)
  • #Z2294. 打印树的直径
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (十一)c52学习之旅-动态数码管
  • ***测试-HTTP方法
  • .naturalWidth 和naturalHeight属性,
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 中的轻量级线程安全