Hadoop高可用架构

Hadoop高可用架构

设计思想

Hadoop2.x启用了主备节点切换模式

当主节点出现异常的时候,集群直接将备用节点切换成主节点

  • 要求备用节点马上就要工作
  • 主备节点内存几乎同步

有独立的线程对主备节点进行监控健康状态

需要有一定的选举机制,帮助我们确定主从关系

我们需要实时存储日志的中间件

ANN(Active NameNode)

记录信息

  • 元数据
  • block块与文件映射信息
  • DataNode与块映射信息

运行时保持心跳

数据存储在内存中

SNN(Standby NameNode)

基本与ANN一致,但不能发出任何指令

记录元数据

保持心跳

数据存储在内存中

合并edits和fsimage,代替了SecondaryNameNode

主备节点的界限没有那么明确,所以主备节点机器配置一般相同

DN

DataNode

  • 存储数据文件和校验文件
  • 与主备节点NN保持心跳
  • 用硬盘存储
  • 存储文件的block数据块,启动时同时向两个NN报告block信息

QJM

1.Quorum JournalNode Manager 共享存储系统,NameNode通过共享存储系统实现日志数据同步。集群运用到最终一致性
2.Hadoop 1.x时,日志存放在NameNode中,NameNode数据是存放在内存中的,若NameNode发生故障,日志信息岌岌可危,
3.Hadoop 2.x 的时候,日志是由ANN生成,同步到SNN中
4.但是ANN不能每一次都能友好通信
5.创建已个日志日志一致性集群,将日志存在QJM中,每次主节点做任何操作时,先生成日志并将日志传输到三个JN节点
6.当JN节点存储后会返回确认信息,超过半数日志即生效
7.当QJM存储成功后,ANN开始执行对应的操作
8.SNN 不会实时的去获取最新的日志,它每间隔一段时间去获取一次 9.FailoverControler(Active|Standby)
10.主要用于监控NameNode的健康状况
11.单独的启动一个进程可以很好的防止一些NN无法发送心跳的情况
12.如果NN出现一些异常,他可以负责主备切换
13.每次启动的时候可以发动主备节点的选举

Zookeeper

分布式协调框架

  • 启动的时候协助选举
  • 记录主节点的状态信息

主备切换的流程

阻止脑裂

  • 主节点选举后,ZKFC会创建两个节点在Zookeper中,一个临时节点,一个正常节点。
  • 1.若主节点主动下线时,两个在zookeeper的节点都会被删除,然后SNN发现主正常节点都没有了,就转为主节点,
  • 2.若主节点被动下线时,只会删除一个临时节点,正常节点会留下来,主节点会将自己的进程信息保存在正常节点中,可通过ssh登入到目标机器中杀死ANN,转而让SNN上台
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值