Hadoop架构基本介绍

Hadoop基本介绍

Hadoop进程

伪分布式(每一个角色都是一个进程)

NN:fsimage editlog 读写请求记录

HDFS:

NN:NameNode
SNN:Secondary NameNode (默认1小时checkpoint)
DN:DataNode

Yarn:

RM:Resource Manager
NM:Node Manager

HDFS HA(高可用)

两个NN节点,实时的,任何时刻只有1台active,另一台standby实时备份,随时准备着从standby切换到active状态,对外服务,无感知的

Hadoop架构基本介绍

HA进程:

hadoop001: zookeeper NN1 active zkfc JN DN
hadoop002: zookeeper NN2 standby zkfc JN DN
hadoop003: zookeeper JN DN

JN: JounalNode 日志节点 专门管理fsimage editlog 配置奇数节点 根据HDFS请求量和数据量
zkfc:当active节点挂了,依赖zkfc进程将standby切换到active
zk集群 选举active standby zk集群部署个数为2n+1(奇数) 集群规模较大时适当部署多点个数,但是不是说zk节点越多越好,因为节点越多投票时间越长,对外服务时间也越长,当节点数非常庞大时,需要单独部署避免其他进程影响zk选举,如果zk繁忙可能会是使standby节点切换不到active状态

HA是为了解决单点问题,通过JN集群共享状态,通过zkfc选举active,监控状态自动备援。
DN:同时向NN1 NN2发送心跳报告。
ACTIVE NN:操作记录写到自己的editlog同时写JN集群,接收DN心跳和块报告
STANDBY NN:同时接收JN集群的日志。显示读取执行log操作(重演),使得自己的元数据和active nn节点保持一致,接收心跳和块报告
JounalNode:用于active standby nn节点的同步数据,一般部署2n+1
ZKFC:单独的进程 监控NN节点健康状态,向zk集群定期发送心跳,使得自己可以被选举;当自己被zk选举为active的时候zkfc进程通过RPC协议调用使NN节点的状态变为active,对外提供实时服务(无感知)
Hadoop架构基本介绍

YARN HA

hadoop001:zk rm(zkfc) nm
hadoop002:zk rm(zkfc) nm
hadoop003:zk nm

RMStateStore:存储在zk的/rmstore目录 存储rm的状态。activeRM会向这个目录写application信息,当activeRM挂了,另一个standbyRM通过zkfc选举成功为active,会从/rmstore读取相应的作业信息,重新构建作业的内存信息,启动内部的服务,开始接受NM的心跳,nodemanager不需要同时去写请求只向activeRM写即,构建集群的资源信息,并且接受客户端的作业提交请求

zkfc:线程 只作为rm进程的一个线程而非独立的进程存在

RM:
1.启动时会向zk的/rmstore 目录写lock文件,写成功就为active,否则为standby,rm节点(zkfc)会一直监控这个lock文件是否存在,假如不存在,就为active,否则为standby
2.接收client的请求,接受和监控NM的资源状况汇报,负责资源的分配和调度
3.启动和监控appliction master(namenode节点的container)

applications manager运行在RM
application master 运行爱NM 的container容器里 job的主程序

NM:
节点资源的管理,启动容器运行task计算 上报资源 汇报进度
Hadoop架构基本介绍