如果我们采用单点的伪分布式部署,那么NN节点挂了,就不能对外提供服务。集群的话,存在两个NN节点,一个挂了,另外一个从standby模式直接切换到active状态,实时对外提供服务(读写)。在生产上,避免出现对外服务中断的情况,所以会考虑采用集群部署。
单点式伪分布:
NN
SNN secondary 1小时checkpoint
DN
HDFS HA:
NN active
NN standby 实时备份
DN
JN : JounalNode 日志
ZKFC : zookeeperFailoverController(控制NN为active还是standby)
图解如下:
hadoop001
NN
ZKFC(与NN部署在同一台机器上)
DN
JN
ZK
hadoop002
NN
ZKFC(与NN部署在同一台机器上)
DN
JN
ZK
hadoop003
DN
JN
ZK
生产上的集群:
假如还有几台空机器hadoop004-010 那么就可以把001 002 上部署的DN拿下来,部署在hadoop004-010 机器上,这个是要看具体机器的配置及数量,按需分配
图解如下:
zkfc是在RM里面的,只作为RM进程的一个线程而非独立的守护进程来独立存在。这个涉及到一个概念,线程
在yarn HA中,zkfc是线程,也就是RM进程的一个线程。所谓进程就是jps 、 ps-ef | grep xxx 能够查看到的,而线程 属于一个进程的里面的 除非特殊命令和工具才能看到。 包含至少一个线程。
NM:
节点的资源管理,启动container运行task计算,上报资源,汇报task进度给AM (ApplicationMaster)
因篇幅问题不能全部显示,请点此查看更多更全内容