第4章 Hadoop YARN
一:判断题
1:Yarn 可以作为Spark的资源调度框架
T
2:YARN既是资源管理调度框架,也是一个计算框架。
F
3:MapReduce2.0是运行在YARN之上的计算框架,由YARN来为MapReduce提供资源管理调度服务。
T
4:YARN的体系结构包含三个组件:ResourceManager,NodeManager,ApplicationMaster
T
5:YARN可以实现“一个集群多个框架”,即在一个集群上部署一个统一的资源调度管理框架
T
二:选择题
1:不是hadoop主要组成部分的是:
A.HDFS
B.MapReduce
C.Yarn
D.HBase
三:简答题
1:YARN的核心组件有哪些?每个组件的具体功能是什么?
① ResourceManager组件:每个Hadoop集群只会有一个ResourceManager (如果是HA的话会存在两个,但是有且只有一个处于active状态),它负责 管理整个集群的计算资源,并将这些资源分别给应用程序。ResourceManager 内部主要有两个组件:Scheduler:这个组件完全是插拔式的,用户可以根据 自己的需求实现不同的调度器,目前YARN提供了FIFO、容量以及公平调度器。 这个组件的唯一功能就是给提交到集群的应用程序分配资源,并且对可用的 资源和运行的队列进行限制。Scheduler并不对作业进行监控; ApplicationsManager (AsM):这个组件用于管理整个集群应用程序的 application masters,负责接收应用程序的提交;为application master 启动提供资源;监控应用程序的运行进度以及在应用程序出现故障时重启它。 ② NodeManager组件:NodeManager是YARN中每个节点上的代理,它管理 Hadoop集群中单个计算节点,根据相关的设置来启动容器的。NodeManager 会定期向ResourceManager发送心跳信息来更新其健康状态。同时其也会 监督Container的生命周期管理,监控每个Container的资源使用(内存、 CPU等)情况,追踪节点健康状况,管理日志和不同应用程序用到的附属 服务(auxiliary service)。 ③ ApplicationMaster组件:ApplicationMaster是应用程序级别的,每个 ApplicationMaster管理运行在YARN上的应用程序。YARN 将 ApplicationMaster看做是第三方组件, ApplicationMaster负责和 ResourceManager scheduler协商资源,并且和NodeManager通信来运行 相应的task。ResourceManager 为 ApplicationMaster 分配容器,这些 容器将会用来运行task。ApplicationMaster 也会追踪应用程序的状态, 监控容器的运行进度。当容器运行完成, ApplicationMaster 将会向 ResourceManager 注销这个容器;如果是整个作业运行完成,其也会向 ResourceManager 注销自己,这样这些资源就可以分配给其他的应用程 序使用了。 ④ Container组件: Container是与特定节点绑定的,其包含了内存、CPU 磁盘等逻辑资源。不过在现在的容器实现中,这些资源只包括了内存和CPU 。容器是由 ResourceManager scheduler 服务动态分配的资源构成。容器 授予 ApplicationMaster 使用特定主机的特定数量资源的权限。 ApplicationMaster 也是在容器中运行的,其在应用程序分配的第一个 容器中运行。
2:YARN架构与MapReduce1.0架构相比的优势是什么?
① YARN大大减少了Job Tracker的资源消耗,并且让监测每个Job子任务状态 的程序分布式化了。 ② YARN中Application Master是一个可变更部分,用户可以对不同编程模 型编写自己的AppMst,让更多类型的编程模型能跑在Hadoop集群中。 ③ 老的框架中,Job Tracker一个很大的负担就是监控Job下任务的运行 状况,现在由Application Master去做,而Resource Manager是监测 Application Master的运行状况,如果出问题,会将其在其他机器上重启。