ElasticSearch(七):分布式特性

一 分片和副本

  • 分片特性
    分片存储部分数据,可以分布任意节点上;
    分片在创建索引时指定且不许更改,默认为5个;
    分片有主副之分,四线数据高可用;
    副本分片的数据由主分片同步,提高读取吞吐量;
  • 实例操作
集群设置:
node1/node2/node3,且node1为主节点;
创建索引:
PUT test_index
{
  "settings":{
    "number_of_shards":3, ##分片数为3
    "number_of_replicas":1 ##副本数为1
  }
}
分片和副本分布:
node1-p0 r1 node2-p1 r2 node3-p2 r0
  • 问题
1-在上述的分布式环境中,增加节点数是否提高test_index的数据容量?
不能,因为只有3个分片,且已经分布在3台节点上,新增节点无法使用;
2-增加副本数是否可以提高test_index的读取吞吐量?
不能,新增的副本依然分布在三个节点上,利用同样资源;
3-建议:
分片数过小,无法通过新增节点实现水平扩容;
分片数过大,导致一个节点上存在多个分片,造成资源浪费;

二 集群状态

  • 集群状态
    Green:健康状态,所有主副分片正常分配;
    Yellow:主分片分配正常,但是副本分片分配不正常;
    Red:存在主分片未分配;
  • 故障转移
集群设置:
node1/node2/node3,且node1为主节点;
主分片数为3,副本数为1,

故障转移:
1-主副分片分布为:node1-p0 r1 node2-p1 r2 node3-p2 r0,当前集群为Green状态;
2-node1宕机,node2/node3发现node1宕机后,发起master选举,假设node2为新主节点,
此时主副分片分布为:node2-p1 r2 node3-p2 r0,集群为Red状态;
3-由于主分片p0未分配,新主节点node2将node3上的r0副分片提升为主分片p0,
此时主副分片分布为:node2-p1 r2 node3-p2 p0,集群为Yellow状态;
4-node2为p0和p1生成新的副本,
此时主副分片分布为:node2-p1 r2 r0 node3-p2 p0 r1,集群为Green状态;

三 文档分布式存储

  • 文档到分片的映射
    文档在分片中尽量分布均匀,充分利用资源;
文档映射算法:
shard = hash(routing) % number_of_primary_shards
1-hash算法保证数据均匀分布在分片中;
2-routing是关键参数,默认是文档id,也可自行指定;
3-算法与主分片数有关,分片数确定后不可更改的原因;

四 脑裂问题

  • 脑裂
    同一个集群中两个master,维护不同的cluster state,网络恢复后无法选择正确的master;
  • 实例操作
集群设置:
node1/node2/node3,且node1为主节点;
脑裂发生:
1-node1与node2和node3间的网络发生隔离;
2-node2与node3自己选举新主节点node2,node2维护新的cluster state;
3-node1自己组成集群后,更新自己的cluster state;
4-网络恢复后,一个集群两个master,两个cluster state,无法恢复统一;
解决方案:
可选举的master-eligible节点数大于quorum时进行master选举,
quorum = master-eligible/2 + 1
在以上问题中,node1数目小于quorum2,无法进行master选举;
设定discovery.zen.minumum_master_nodes为quorum即可避免脑裂;

五 文档搜索实时性

  • refresh
    segment写入磁盘耗时,借助文件系统缓存特性,将segment缓存并开放搜索实时性,称为refresh;
    refresh之前将文档存储到一个buffer中,refresh时将buffer中的文档清空生成segment;
refresh发生时机:
1-间隔时间到达,通过index.settings.refresh_interval来设定,默认时1秒;
2-index.buffer满时,其大小通过indices.memory.index_buffer_size设置,默认为JVM heap的10%,所有shard共享;
3-flush发生时发生;
  • translog
    解决内存中segment未写入磁盘就发生宕机问题;
    文档写入buffer时,同时将请求操作写入translog,6.x默认每个请求都落盘;
    Es启动时检查translog文件,并从中恢复数据;

  • flush
    负责将内存中的segmet写入磁盘;
    将index buffer清空,其中的文档生成一个新的segment,相当于一个refresh操作;
    更新commit point并写入磁盘;
    执行fsync操作,将内存中的segment写入磁盘;
    删除旧的translog日志;

flush发生时机:
1-间隔时间到达时,默认时间时30分钟,5.x之前通过index.translog.flush_threshold_period修改;
2-translog占满时,大小通过index.translog.flush_threshold_size控制,默认时512m;
  • 删除与更新文档
    segment一旦创建就不能更改,如何删除与更新文档呢?
删除:
1-维护一个.del文件,记录所有删除文档的id,查询时过滤.del中的所有文档;
更新:
1-首先删除文档,后新建文档;
  • segment merge
    Es会定时在后台进行segment merge操作,减少segment的数量;
    通过force_merge api实现手动强制做segment merge;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容