Elasticsearch 入门到精通-(节点、集群、分片)

ElasticSearch 特性


ElasticSearch是一个高性能,高可用,易扩展的分布式搜索引擎。

其高可用体现在:

服务可用性:允许有节点停止服务,整个ElasticSearch集群必须正常对外提供服务(冗余节点)
数据可用性:允许部分节点丢失,但是数据不会丢失(冗余数据)
其可扩展性体现在:

请求量提升/数据的不断增长(将数据分布到所有节点上)(新增节点就能提供读写能力)
ElasticSearch分布式架构的好处

存储的水平扩容
提高可用性
ElasticSearch不同的集群通过名字不同来区分,默认名字是elasticsearch

可以通过修改配置文件,或者在命令行中 -E cluster.name = test 进行设定

一个分布式集群可以有一个或多个节点

一、节点


一个节点就是一个ElasticSearch的实例,本质上就是一个Java进程。

每个节点都有名字,通过配置文件,或者启动时候 -E node.name = node1指定

每一个节点在启动之后,会分配一个UID,保存在data目录下

Master eligible Node & Master Node
每个节点启动后,默认就是一个Master eligible节点(可以设置node.master:false 禁止),Master-eligible节点可以参与选主流程,成为Master节点

当第一个节点启动,它会将自己选举成Master节点

每个节点上都保存了集群的状态信息(所有节点信息,所有的索引和其相关的Mapping和Setting信息,分片路由信息),只有Master节点可以修改集群状态信息(任何节点修改会导致不一致,而且需要额外的锁控制)

Data Node
可以保存数据的节点,叫做Data Node,负责保存分片数据。在数据扩展上起到了至关重要的作用

Coordinating Node
负责接收Client请求,将请求分发到合适的节点,最终吧结果汇聚在一起

每个节点默认都起到了Coordinating Node的职责

Hot & Warm Node
本质上还是Data Node,根据不同的硬件配置,可以实现Hot & Warm架构,降低集群部署成本。

例如海量数据分析,就可以使用高硬件服务器,做Hot Node,处理海量日志

Machine Learning Node
负责跑机器学习Job,用来做异常检测

Tribe Node
Tribe Node 连接到不同的elasticSearch集群,并且支持将这些集群当成一个单独集群处理(5.3开始使用Cross Cluster Search处理)

配置节点类型
生产环境中一个节点应该设置单一的角色(意味着节点可以多角色)

节点类型配置参数默认值备注
master eligiblenode.mastertrue可以参加选主
datanode.datatrue存储数据
ingestnode.ingestTrueingest节点可以运行一些pipeline的脚本
Coordinating每个节点默认都是coordinating节点,设置其他类型全部为false
machine learningnode.mltrue(需要enable x-pack)机器学习

二、集群

        一个es集群必须包含至少一个主节点(masterNode)和一个数据节点(dataNode),一个节点可以同时为masterName和dataNode(默认不修改配置文件)可用于自己测试环境。

一个集群可配置多个masterNode,但是es集群中只使用一个masterNode,其他作为备用master节点,在当前masterNode节点挂了以后,备用masterNode自动启用。


三、分片


分片分为两种类型:主分片(Primary Shard)和副本分片(Replica Shard)

主分片:用以解决数据水平扩展的问题,通过主分片,可以将数据分布到集群内的所有节点上(主从复制)
主分片在索引创建时指定,后续不允许修改,除非reindex
一个分片是一个运行的Lucene实例
副本分片:用于解决数据高可用的问题,是主分片的拷贝(可以提高读吞吐量)
副本分片数,可动态调整
假设一个集群中有两个节点。movie索引的分片分布情况如下所示

PUT /movies
{
    "settings":{
        "number_of_shards":2,  //主节点
        "number_of_replicas":2  //副本节点
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值