HadoopHA之NameNode HA With QJM

1.hadoop ha

1.1 节点

nn active  单点故障 
snn checkpoint 1小时
nn  standby 实时备份  
实时等待nn active节点挂,随时由standby 实时备份--》active 活动的

1.2 hadoop ha 架构图

现在企业普遍还是用2个nn 组成 hdfs ha 高可靠 
zkfc(zookeeperfailovercontrol)

pentalKill001   nn1(active)  zkfc   journalnode(jn)   dn   zk

pentalKill002   nn2(standby) zkfc   jn   dn   zk

pentalKill003			   jn   dn   zk

集群的最小版  3台

架构图
在这里插入图片描述

2.hdfs ha架构

2.1 架构理解

pentalKill001   nn1(active)   192.168.1.100
pentalKill002   nn2(standby)  192.168.1.101

hdfs dfs -ls  
	其实访问是这个路径  /user/hadoop/
hdfs dfs -ls  /
hdfs dfs -ls hdfs:/pentalKill001:9000/

设想一下 HA,当其中一个点挂了,访问不可能去修改代码,脚本等
改为第二台机器的ip 

为了解决这个问题,引入 命名空间
hdfs dfs -ls hdfs://nameservice1/
当 active --》standby  standby-->active  对外实时提供读写服务,
对于客户端来说,是无感知的,平滑过渡的。


Prior to Hadoop 2.0.0,
the NameNode was a single point of failure (SPOF) in an HDFS cluster.
as of 3.0.0 more than two

计算 要支持重跑 

在这里插入图片描述

2.2 各个组件的功能

active nn:

接收client的rpc的请求,同时自己的editlog文件写一份,
也会向jn集群写一份
也同时接收dn的heartbeat  blockreport  block 

standby nn:

同时会接受到从jn集群的这份记录,使自己的元数据和active nn的元数据保持一致。
这个动作叫做 【重演】,说白了 就是active nn的一个实时热备份。
一旦standby切换为active状态,就能够立即马上对外提供服务。

JournalNode jn集群

用于active standby nn同步数据的,
本身由jn节点组成,至少3台 2n+1 保证高可用

you should run an odd number of JNs, (i.e. 3, 5, 7, etc.). 
Note that when running with N JournalNodes, 
the system can tolerate at most (N - 1) / 2 failures and 
continue to function normally.

5台jn 允许失败的jn节点:5-1=4/2=2 

上家的 
65台刀片机 256G 56物理core  
           2颗GPU  5个SSD 500G  10块  机械硬盘 2T  = 10W/台 硬件成本
7台

++问清楚 哪些ip机器是一个机架上的?++
在这里插入图片描述

zkfc

监控nn的健康状态
向zk集群定期的发送心跳 让自己被选举上,
当被zk选举为active时,zkfc通过rpc协议调用让nn状态转换为nn active

dn

同时向两个NN发送 心跳  块报告

3.yarn ha架构

简配:  【对标】hdfs ha,没有类似jn集群--》zk来替代的
                        没有zkfc单点进程--》rm进程的zkfc线程
			没有dn的多向nn发送心跳--》nm只向active rm发送心跳

架构图
在这里插入图片描述
rm

a.启动时 向zk集群hadoop-ha目录写个lock文件。写成功标识为active,否则为standby。

standby:

rm节点会一直监控这个lock文件是否存在,假如不存在,就尝试去创建,争取为active rm。
b.同时会接收client的任务的请求,接收和监控nm的资源汇报,负责资源的分配调度,启动和监控applicationmaster.

zkfc:

自动故障转移 是rm的线程  非独立的守护进程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值