hadoop高可用(HA)机制

hdfs工作机制

这里对于namenode和secondarynamenode。客户端文件过来先写入日志edits,再写入内存中的FsNamesystem。fsimage是FsNamesystem的持久化存储。但是其数据会落后于FsNamesystem。这个时候secondarynamenode开始工作,每隔一段时间下载edits和fsimage在内存中做合并操作,并且生成新的fsimage到NameNode的fsimage(即做checkpoint)。

hadoop高可用(HA)机制_第1张图片
hdfs工作机制

在这个系统下,一旦namenode宕机,hdfs系统就再也不能够提供服务。
我们知道web服务器可以用keepalived(维护一个虚拟ip)用一个切换ip的方式来实现高可用。若对namenode也采用这种方式,元数据的同步又会变成一个新的难题。

  • CAP定理

在一个分布式系统中, Consistency(数据一致性)、 Availability(可用性)、Partition tolerance(可靠性),三者不可得兼。

当可用性可靠性高,相应的数据一致性就会变差一点。

namenode的safemode

hadoop高可用(HA)机制_第2张图片
关于namenode的安全模式

hdfs的高可用

  • zookeeper【协调机器,选主从,分布式锁,动态上下线感知,不存业务数据】,
  • qjournal【edits日志管理,借助zookeeper做分布式协调】,JournalNode
  • zookeeperfailovercontroler(ZKFC),rpc接口调用namenode(知道是否正常工作,工作状态)。两个ZKFC中间有一个共享锁,通过删除zk上的active锁节点通知对方,实现ACTIVE,STANDBY切换。切换的实现也是rpc调用通知状态切换。切换之前需要fence老的active的namenode:1.zkfcssh kill -9,2.若操作1超时或者执行用户自定义的脚本,杀掉active。 完成之后通知切换,并且注册一把active锁。这样宕掉的机维护好后自动变为standby。
hadoop高可用(HA)机制_第3张图片
hdfs高可用

standby状态的namenode会负责做checkpoint(像secondarynamenode)

yarn的高可用

hadoop高可用(HA)机制_第4张图片
yarn的高可用

hadoop的federation机制

hadoop高可用(HA)机制_第5张图片
hadoop的federation机制

你可能感兴趣的:(hadoop高可用(HA)机制)