Elasticsearch 入门到精通-Elasticsearch节点类型以及各种节点的分工

         Elasticsearch目前支持五种节点,每种节点都各自分工不通。这里主要讲下工作中常用的节点类型,配置以及应用

1、主节点(或者候选主节点)

        一个ES节点启动后,使用Zen Discovery 机制去寻找集群中的其他节点,并与之建立连接。集群中从候选主节点中选举出一个主节点。主节点负责创建索引,删除索引,分配分片,追踪集群中其他节点的状态等工作。

        正常情况下,集群中所有的节点对主节点的选择是一致的,即一个集群中只能有一个主节点。然而在某些情况下,如网络通信故障,主节点负载过高无法及时响应等等,导致集群重新选举主节点,当网络通信恢复正常时集群中就会出现多个主节点的现象,即节点对集群状态的认知不一致,俗称集群脑裂现象。为了避免这种情况发生,可以通过 discovery.zen.minimum_master_nodes 来设置最少可工作的候选主节点个数。建议设置为(候选主节点/2) + 1 比如三个候选主节点,该配置项为 (3/2)+1 ,来保证集群中有半数以上的候选主节点。

        候选主节点的设置方法是设置node.mater为true,默认情况下,node.mater和node.data的值都为true,即该节点既可以做候选主节点也可以做数据节点。由于数据节点承载了数据的操作,负载通常都很高,所以随着集群的扩大,建议将二者分离,设置专用的候选主节点。当我们设置node.data为false,就将节点设置为专用的候选主节点了。

        node.master = true

        node.data = false

        稳定的主节点对集群健康非常重要,默认情况下集群中的任何一个节点都有可能被选为主节点,索引和搜索数据会占用大量的CPU,内存,IO资源,为了确保一个集群的稳定,建议生产环境分离主节点和数据节点,并启用备用主节点。

2、数据节点

        数据节点负责数据的存储和相关具体操作,比如CRUD、搜索、聚合。所以,数据节点对机器配置要求比较高,首先需要有足够的磁盘空间来存储数据,其次数据操作对系统CPU、Memory和IO的性能消耗都很大。通常随着集群的扩大,需要增加更多的数据节点来提高可用性。

  前面提到默认情况下节点既可以做候选主节点也可以做数据节点,但是数据节点的负载较重,所以需要考虑将二者分离开,设置专用的数据节点,避免因数据节点负载重导致主节点不响应。

        node.master = false

        node.data = true

3、客户端节点

        当主节点和数据节点配置都设置为false的时候,该节点只能处理路由请求,处理搜索,分发索引操作等,从本质上来说该客户节点表现为智能负载平衡器。独立的客户端节点在一个比较大的集群中是非常有用的,他协调主节点和数据节点,客户端节点加入集群可以得到集群的状态,根据集群的状态可以直接路由请求。

        node.master = false

        node.data = false

4.建议

        在一个生产集群中我们可以对这些节点的职责进行划分,建议集群中设置3台以上的节点作为master节点,这些节点只负责成为主节点,维护整个集群的状态。再根据数据量设置一批data节点,这些节点只负责存储数据,后期提供建立索引和查询索引的服务,这样的话如果用户请求比较频繁,这些节点的压力也会比较大,所以在集群中建议再设置一批client节点(node.master: false node.data: false),这些节点只负责处理用户请求,实现请求转发,负载均衡等功能。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
elasticsearch是一个基于Lucene搜索引擎构建的开源分布式搜索和分析引擎。它被广泛用于构建实时搜索、日志分析、文档存储和大数据分析等应用。 要从入门精通elasticsearch,你可以按照以下步骤进行学习: 1. 安装与配置:首先,你需要下载并安装elasticsearch。然后,你可以根据你的需求进行配置,如设置集群和节点、调整内存和磁盘限制等。 2. 索引与搜索:学习如何创建索引,将数据添加到elasticsearch中。你可以使用REST API或一些客户端库来进行索引和搜索操作。了解如何构建查询语句、使用过滤器、排序和分页等功能。 3. 映射与分析:深入了解elasticsearch的映射和分析功能。映射定义了索引中的字段类型和属性,而分析则负责对文本进行分词、处理和转换。学习如何创建自定义映射和分析器,以满足你的特定需求。 4. 聚合与分析:掌握elasticsearch的聚合功能,用于对索引中的数据进行统计、分组和计算。了解各种聚合类型,如词项聚合、范围聚合、日期直方图等,并学会使用聚合管道进行复杂的数据分析。 5. 高级特性:深入研究elasticsearch的一些高级特性,如倒排索引、分片和副本、分布式搜索、近实时搜索等。了解如何处理大规模数据集和高并发请求,以及如何优化性能和可靠性。 6. 监控与管理:学习如何监控elasticsearch集群的状态和性能,并进行适当的管理和维护工作。了解如何配置和使用监控工具,如Elasticsearch集群监控插件、Kibana等。 7. 故障排除与优化:掌握常见的elasticsearch故障排除技巧,如日志分析、错误处理和调优。学习如何识别和解决性能问题,如慢查询、内存溢出、磁盘使用过高等。 8. 生态系统与扩展:了解elasticsearch的生态系统,并探索一些常用的扩展工具和库,如Logstash、Kibana、Beats等。学习如何与其他技术栈集成,如使用elasticsearch作为后端存储的应用程序等。 以上是elasticsearch入门精通的大致路径,你可以根据自己的兴趣和需求进行深入学习和实践。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值