第四篇 elasticsearch的基本分布式架构

原创 2017年10月28日 17:19:13

1、Elasticsearch对复杂分布式机制的透明隐藏特性

Elasticsearch是一套分布式的系统,分布式是为了应对大数据量,它很好的隐藏了复杂的分布式机制:

  • shard分片机制
    我们可以随随便便就将一些document插入到es集群中去,而且不用关心数据怎么进行分片的,数据到哪个shard中去。
  • cluster discovery集群发现机制
    举例:我们之前在做那个集群status从yellow转green的实验里,直接启动了第二个es进程,那个进程作为一个node自动就发现了集群,并且加入了进去,还接受了部分数据,replica shard
  • shard负载均衡
    举例:假设现在有3个节点,总共有25个shard要分配到3个节点上去,es会自动进行均匀分配,以保持每个节点的均衡的读写负载请求

2、Elasticsearch的垂直扩容与水平扩容

垂直扩容:采购更强大的服务器,成本非常高昂,而且会有瓶颈,假设世界上最强大的服务器容量就是10T,但是当你的总数据量达到5000T的时候,你要采购多少台最强大的服务器啊

水平扩容:业界经常采用的方案,采购越来越多的普通服务器,性能比较一般,但是很多普通服务器组织在一起,就能构成强大的计算和存储能力

普通服务器:1T,1万,100万
强大服务器:10T,50万,500万

3、shard&replica机制梳理

(1)index包含多个shard
(2)每个shard都是一个最小工作单元,承载部分数据,lucene实例,完整的建立索引和处理请求的能力
(3)增减节点时,shard会自动在nodes中负载均衡
(4)primary shard和replica shard,每个document肯定只存在于某一个primary shard以及其对应的replica shard中,不可能存在于多个primary shard
(5)replica shard是primary shard的副本,负责容错,以及承担读请求负载
(6)primary shard的数量在创建索引的时候就固定了,replica shard的数量可以随时修改
(7)primary shard的默认数量是5,replica默认是1,默认有10个shard,5个primary shard,5个replica shard
(8)primary shard不能和自己的replica shard放在同一个节点上(否则节点宕机,primary shard和副本都丢失,起不到容错的作用),但是可以和其他primary shard的replica shard放在同一个节点上

4、elasticsearch的横向扩容过程,如何超出扩容极限,以及如何提升容错性

(1)primary&replica自动负载均衡,6个shard,3 primary,3 replica
(2)每个node有更少的shard,IO/CPU/Memory资源给每个shard分配更多,每个shard性能更好
(3)扩容的极限,6个shard(3 primary,3 replica),最多扩容到6台机器,每个shard可以占用单台服务器的所有资源,性能最好
(4)超出扩容极限,动态修改replica数量,9个shard(3primary,6 replica),扩容到9台机器,比3台机器时,拥有3倍的读吞吐量
(5)3台机器下,9个shard(3 primary,6 replica),资源更少,但是容错性更好,最多容纳2台机器宕机,6个shard只能容纳0台机器宕机
(6)这里的这些知识点,你综合起来看,就是说,一方面告诉你扩容的原理,怎么扩容,怎么提升系统整体吞吐量;另一方面要考虑到系统的容错性,怎么保证提高容错性,让尽可能多的服务器宕机,保证数据不丢失

5、elasticsearch容错过程分析

master node宕机的一瞬间这个节点上的primary shard就没了,此时就不是active status,就不是所有的primary shard都是active了。
容错第一步: master选举,自动选举另外一个node成为新的master,承担起master的责任来;
容错第二步: 新master将丢掉的primary shard的某个replica shard提升为rpimary shard。此时cluster status会变为yellow,因为primary shard全都变成active了。但是少了一个replica shard,所以不是所有的replica shard都是active了。
容错第三步: 重故障的node,new master会将缺失的副本都copy一份到node上去,并且该node会使用之前已有的shard数据,只是同步下一个宕机之后发生过的修改。cluster status变为green,因为primary shard和replica shard都齐全了。

Elasticsearch+Hbase实现海量数据秒回查询

文章出处:http://blog.csdn.net/sdksdk0/article/details/53966430 作者:朱培      ID:sdksdk0      ------------...
  • qq_26803795
  • qq_26803795
  • 2017年01月03日 14:53
  • 4543

[Elasticsearch]Elasticsearch+kibana+marvel安装

1. 检查JDK版本 使用如下命令检验JDK版本: xiaosi@Qunar:~$ java -versionjava version "1.7.0_40"Java(TM) SE Runtime...
  • SunnyYoona
  • SunnyYoona
  • 2016年06月23日 23:04
  • 6314

ElasticSearch分布式架构

本文固定链接: http://www.chepoo.com/elasticsearch-distributed-architecture.html | IT技术精华网 今天介绍下Elas...
  • thinkone
  • thinkone
  • 2015年10月14日 09:26
  • 4184

Elasticsearch 基本操作

Elasticsearch之基础操作Elasticsearch之基础操作 存 指定id存储 使用自动生成id 取 返回所有字段 返回指定字段 只返回_source信息不返回元数据 查 更新 完全更新 ...
  • zhang__bing
  • zhang__bing
  • 2015年11月04日 23:26
  • 3041

ElasticSearch学习22_百姓网 Elasticsearch 2.x 升级之路

导读:Elasticsearch 是广泛使用的一个软件,我们邀请了曾经在高可用架构分享过 ES 的王卫华继续分享在升级 Elasticsearch 过程中的经验。 王卫华,资深开发工程师、架...
  • wang_zhenwei
  • wang_zhenwei
  • 2016年12月15日 17:15
  • 628

Optimizing Elasticsearch: How Many Shards per Index?

A key question in the minds of most Elasticsearch users when they create an index is “How many shard...
  • xiao_jun_0820
  • xiao_jun_0820
  • 2016年05月23日 17:15
  • 503

ElasticSearch常用的基本查询语句详解

1、term 过滤 term主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed 的字符串(未经切词的文本数据类型): { "term": { "date":   "2...
  • qw463800202
  • qw463800202
  • 2017年07月06日 11:08
  • 250

elasticsearch 第四篇(API约定)

对多个indices进行操作 es中大多resetapi支持请求多个index, 例如”test1,test2,test3”,index也可以使用通配符, 例如”test*“, 还可以使用+,-...
  • GarfieldEr007
  • GarfieldEr007
  • 2017年01月19日 22:05
  • 820

全文搜索引擎Elasticsearch6.x 入门

全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。    Elastic 的底层是开源的Lucene。Elastic...
  • Ghost_leader
  • Ghost_leader
  • 2018年01月17日 16:56
  • 389

Flume-ng 1.6.0+ Elasticsearch 1.7.2+ Kibana4 日志收集分析系统环境搭建及介绍

Flume-ng 1.6.0+ Elasticsearch 1.7.2+ Kibana4 日志收集分析系统环境搭建及介绍 1.Flume-ng介绍        FlumeNG 是Clouder...
  • conquer_ustb
  • conquer_ustb
  • 2015年09月30日 10:54
  • 2317
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第四篇 elasticsearch的基本分布式架构
举报原因:
原因补充:

(最多只允许输入30个字)