ElasticSearch第13节 ElasticSearch原理

解析es的分布式架构

1.1 分布式架构的透明隐藏特性

ElasticSearch是一个分布式系统,隐藏了复杂的处理机制
分片机制:
我们不用关心数据是按照什么机制分片的、最后放入到哪个分片中
分片的副本:
集群发现机制(cluster discovery):新节点自动发现集群自动加入
shard负载均衡:比如现在有10shard,隼群中有3个节点,es会进行均衡地分配,以保持每个节点均衡的负载请求。
请求路由

1.2扩容期

垂直扩容:构置新机器,替换已有机器
水平扩容:直接增加机器

1.3 rebalance

塯加成减少节点时会目动均衡

1.4 master节点

主节点的主要职责是和集群相关的内容,如创建或删除索引,跟踪哪些节点是集群的一部分,并决定哪些分配分配给相关节点。稳定的主节点对集群的健康是很重要的。

1.5 节点对等

每个节点都能接收请求,每个节点接收到请求后都能把该请求路由到有相关数据的其它节点上,接收原始请求的节点负责采集数据并返回给客户端。


2分片和副本机制

1 . index(索引)包含多个shard(分片)

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

集群可以正常工作,但是一旦出现节点宕机,数据全部丟失,而且集群不可用,无法接收任何请求。如果每一个索引的主分片和副本分配都能够进行很好的分配,那么久是green

//
#3个主分片,一个副本分片,一个ES节点
put lib4
{
  "settings":{
    "index":{
      "number_of_shards":3,
      "number_of_replicas":1
    }
  }
}
#primary_shard1 primary_shard2 primary_shard3 在一个ES节点上
#但是由于primary_shard 和 replica_shard不能在同一个分片上,所以副本分片不能成功创建。

#查看ES监控状况:yellow是警告色,黄色也不影响存储,只不过没有副本了
GET /_cat/health
1560754932 07:02:12 elasticsearch yellow 1 1 21 21 0 0 6 0 - 77.8%
4. 两个节点环境下创建索引分析

将3个primary shard分配到一个node上去,另外3个replica shard分配到另一个节点上。

node1 : p1  p2   p3
node2 : r1  r2   r3
5. 将2个及节点再扩容至3个节点
# primary_shard:1, replicat
node1 : p1  p3
node2 : p2  r2
node3 : p3  r1
6. 扩容的极限

每个es节点上运行一个分片(3主3从 = 6)

7. 新增节点超出扩容的极限?

增加副本数

8. 容错性(能容忍多少台node宕机?)
  1. 3个节点,6个shard(3个主,每个主1个从),最多接受一个node宕机
    (死了一主一从。死的主还有活的从,死的从还有活的主)
  2. 3个节点,9个shard(3个主,每个主2个从)最多接受2个node宕机
9. 容错性

3节点9shard,(3个主,每个主2个从)。3个节点中有一个是master节点

1)宕机一个节点,节点包含primary_shard,GET /_cat/health red

  1. ES将丢失primary_shard的一个副本shard转变为primary_shard,此时所有的primary_shard都是活跃的,但是GET /_cat/health 是yellow,因为副本丢失。
    3)宕机的节点重启,master会将每个primary_shard上的数据拷贝一份副本来。此时所有的primary_shard和replicate_shard都在线,GET /_cat/health 是green

二、 文档的核心元数据

primary shard和replica shard都是Active status

  1. index:
    说明了一个文档存储在哪个索引中
    同一个索引下存放的是相似的文档(文档的field多数是相同的)
    索引名必需是小写的,不能以下划线开头,不能包括逗号
  2. _type:
    表示文档属子索引中的哪个类型 (ES7.0.0已弃用)
    一个索引下只能有一个type
    类型名可以是大写也可以是小写的,不能以下划线开头,不能包括逗号
  3. _id:
    文档的唯一标识和索引,和索引、类型组合在一起唯一标识了一个文档
    可以手动指定值,也可以甶es来生成这个值

3.8文挡id生成方式

1.手动指走
put /index/type/66
通常是把其它系统的已有数据导入到es时
2.由es生成id值
post /index/type
es生成的id长度为20个字节,使用的是base64编码,URL安全,使用的是GUID算法, 分布式下并发生成id值时不会冲突。

3.9 _source元数据分析

其实就是我们添加文档时request body中的内容
指定返回的结果中含有哪些字段:
get /index/type/1?_source=name,id,sex

3.10改变文档内容原理解析:PUT POST

//
#根据id获取文档
GET /myindex/_doc/article2
#全部替换文档内容
PUT /myindex/_doc/article2
{
    "post_date" : "2019-06-10",
    "tile" : "xixi",
    "content" : "I like html",
    "id" : 120,
    "age" : 20,
    "test" : [
      "html",
      "good"
    ],
    "intrest" : "xi huan tingyinyue,cooking,running"
}
#部分替换(更新)文档内容
POST /myindex/_update/article2
{
  "doc": {"tile" : "hello world2"}
}
put post对比
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容