沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散!

为什么要这步呢,如不雅在写过程中写掉败了,可能各个JN上的EditLog的长度都不一样,须要在开端写之前将不一致的部分恢复。恢复机制如下:
- ANN先向所有JN发送getJournalState请求;
- JN会向ANN返回一个Epoch(lastPromisedEpoch);
- ANN收到大年夜多半JN的Epoch后,选择最大年夜的一个并加1作为当前新的Epoch,然后向JN发送新的newEpoch请求,把新的Epoch下发给JN;
- JN收到新的Epoch后,和lastPromisedEpoch比较,若更大年夜则更新到本地并返回给ANN本身本地一个最新EditLogSegment肇端事务Id,若小则返回NN缺点;
- ANN收到多半JN成功响应后认为Epoch生成成功,开端预备日记恢复;
- ANN会选择一个最大年夜的EditLogSegment事务ID作为恢复根据,然后向JN发送prepareRecovery; RPC请求,对应Paxos协定2p阶段的Phase1a,若多半JN响应prepareRecovery成功,则可认为Phase1a阶段成功;
- ANN选择进行同步的数据源,向JN发送acceptRecovery RPC请求,并将数据源作为参数传给JN。
- JN收到acceptRecovery请求后,会大年夜JournalNodeHttpServer下载EditLogSegment并调换到本地保存的EditLogSegment,对应Paxos协定2p阶段的Phase1b,完成后返回ANN请求成功状况。
- ANN收到多半JN的响应成功请求后,向JN发送finalizeLogSegment请求,表示数据恢复完成,如许之后所有JN上的日记就能保持一致。
导语
比来分享过一次关于Hadoop技巧主题的演讲,因为接触时光不长,很多技巧细节熟悉不敷,也没讲清跋扈,作为一个技恋人员,本着追根溯源的精力,照样有须要吃透,也为本身的工作沉淀一些经验总结。网上关于Hadoop HA的材料多集中于怎么搭建HA,对于HA为什么要这么做描述甚少,所以本文对于HA是若何搭建的暂不介绍,主如果介绍HA是怎么运作,QJM又是怎么发挥功能的。
一、Hadoop 体系架构
1.1 Hadoop1.x和Hadoop2.x 架构
在介绍HA之前,我们先来看下Hadoop的体系架构,这对于懂得HA是至关重要的。Hadoop 1.x之前,其官方架构如图1所示:

[ 图1.Hadoop 1.x架构图 ]
在QJM出现之前,为保障集群的HA,设计的是一种基于NAS的共享存储机制,即主备NameNode间经由过程NAS进行元数据的同步。该筹划有什么缺点呢,重要有以下几点:
- 定制化硬件设备:必须是支撑NAS的设备才能知足需求
- 复杂化安排过程:在安排好NameNode后,还必须额外设备NFS挂载、定制隔离脚本,安排易掉足
- 简陋化NFS客户端:Bug多,安排设备易掉足,导致HA弗采取
大年夜图中可看出,1.x版本之前只有一个Namenode,所有元数据由惟一的Namenode负责治理,可想而之当这个NameNode挂掉落时全部集群根本也就弗采取。
Hadoop 2.x的架构与1.x有什么差别呢。我们来看下2.x的架构:


[ 图2.Hadoop 2.x架构图 ]
可以避免EditLog越来越大年夜,归并成新fsimage后可以将老的EditLog删除
1.2 Hadoop 2.x元数据
Hadoop的元数据重要感化是保护HDFS文件体系中文件和目次相干信息。元数据的存储情势重要有3类:内存镜像、磁盘镜像(FSImage)、日记(EditLog)。在Namenode启动时,会加载磁盘镜像到内存中以进行元数据的治理,存储在NameNode内存;磁盘镜像是某一时刻HDFS的元数据信息的快照,包含所有相干Datanode节点文件块映射关系和定名空间(Namespace)信息,存储在NameNode本地文件体系;日记文件记录client提议的每一次操作信息,即保存所有对文件体系的修改操作,用于按期和磁盘镜像归并成最新镜像,包管NameNode元数据信息的完全,存储在NameNode本地和共享存储体系(QJM)中。
如下所示为NameNode本地的EditLog和FSImage文件格局,EditLog文件有两种状况: inprocess和finalized, inprocess表示正在写的日记文件,文件名情势:editsinprocess[start-txid],finalized表示已经写完的日记文件,文件名情势:edits[start-txid][end-txid]; FSImage文件也有两种状况, finalized和checkpoint, finalized表示已经持久化磁盘的文件,文件名情势: fsimage_[end-txid], checkpoint表示归并中的fsimage, 2.x版本checkpoint过程在Standby Namenode(SNN)长进行,SNN会按期将本地FSImage和大年夜QJM上拉回的ANN的EditLog进行归并,归并完后再经由过程RPC传回ANN。

网友点评
精彩导读
科技快报
品牌展示