HDFS高可用

        HDFS的高可用指的是HDFS持续对各类客户端提供读、写服务的能力。因为客户端对HDFS的读、写操作之前都要访问NameNode服务器,客户端只有从NameNode获取元数据之后才能继续进行读、写,所以 HDFS的高可用的关键在于NameNode上的元数据持续可用。

2NN的功能是把NameNode的fsimage和edit log做定期融合,融合后传给NameNode,以确保备份到的元数据是最新的,这一点类似于做了一个元数据的快照。Hadoop官方提供了一种quorum journal manager来实现高可用,那么就没必要配置2NN了。

        在高可用配置下,edit log不再存放在NameNode节点,而是存放在一个共享存储的地方,这个共享存储由奇数个Journal Node组成,一般是3个节点(Journal Nodes,JNS),JNS专门用于存放活跃状态的NameNode写入的编辑日志。

由于编辑日志存储在JNS集群中,为了保证日志安全,因此JNS也必须是高可用的。

在Hadoop2.6中,提供了QJM(Quorum Journal Manager)方案来解决HA共享存储问题。

        两个以上的NameNode(一般是2个),只能有一个NameNode处于活跃状态(Active),另一个是待命状态(Standby),只有Active的NameNode节点才能对外提供读、写HDFS服务,也只有Active态的NameNode才能向JNS写入编辑日志,Standby状态的NameNode负责从JNS中拷贝数据到本地。另外,各个DataNode也要向Active状态的NameNode报告状态(心跳信息、块信息等)。

        2个NameNode与JNS保持通信,活跃的NameNode节点负责往JNS写入编辑日志,待命的NameNode节点负责观察JNS中的编辑日志,并且把日志拉取到待命节点,再加上两个NameNode各自的fsimage镜像文件,这样一来就能确保两个NameNode的元数据保持同步。一旦 Active NameNode不可用(ZKFC进程进行监控),提前配置的Zookeeper会把Standby节点自动变Active状态,继续对外提供读写服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值