YARN 产生配景MapReduce存在的题目:
什么是YARNYARN 是Hadoop2.0版本新引入的资源管理体系,直接从MR1演化而来。 焦颔首脑:将MR1中JobTracker的资源管理和作业调理两个功能分开,分别由ResourceManager和ApplicationMaster进程来实现。此中,ResourceManager:负责整个集群的资源管理和调理。ApplicationMaster:负责应用步调相干的变乱,比如使命调理、使命监控和容错等。 YARN的出现,使得多个盘算框架运行在一个集群当中。
YARN的根本架构从 YARN 的架构图来看,它紧张由ResourceManager、NodeManager、ApplicationMaster和Container等以下几个组件构成。 ResourceManager(RM) RM 是一个全局的资源管理器,负责整个体系的资源管理和分配。它紧张由两个组件构成: 调理器(Scheduler)和应用步调管理器(Applications Manager,ASM)。 YARN 分层布局的本质是 ResourceManager。这个实体控制整个集群并管理应用步调向底子盘算资源的分配。ResourceManager 将各个资源部门(盘算、内存、带宽等)经心安排给底子 NodeManager(YARN 的每节点署理)。ResourceManager 还与 ApplicationMaster 一起分配资源,与 NodeManager 一起启动和监督它们的底子应用步调。在此上下文中,ApplicationMaster 负担了从前的 TaskTracker 的一些脚色,ResourceManager 负担了 JobTracker 的脚色。
ApplicationMaster(AM) ApplicationMaster 管理一个在 YARN 内运行的应用步调的每个实例。ApplicationMaster 负责和谐来自 ResourceManager 的资源,并通过 NodeManager 监督容器的实行和资源使用(CPU、内存等的资源分配)。请注意,只管现在的资源更加传统(CPU 焦点、内存),但将来会带来基于手头使命的新资源范例(比如图形处置惩罚单位或专用处置惩罚装备)。从 YARN 角度讲,ApplicationMaster 是用户代码,因此存在埋伏的安全题目。YARN 假设 ApplicationMaster 存在错误大概以致是恶意的,因此将它们当作无特权的代码对待。 ApplicationMaster 管理一个在 YARN 内运行的应用步调的每个实例,ApplicationMaster 负责和谐来自 ResourceManager 的资源,并通过 NodeManager 监督容器的实行和资源使用(CPU、内存等 的资源分配)。 NodeManager(NM) NodeManager 管理一个 YARN 集群中的每个节点。NodeManager 提供针对集群中每个节点的服务,从监督对一个容器的终生管理到监督资源和跟踪节点康健。MRv1 通过插槽管理 Map 和 Reduce 使命的实行,而 NodeManager 管理抽象容器,这些容器代表着可供一个特定应用步调使用的针对每个节点的资源。YARN 继承使用 HDFS 层。它的紧张 NameNode 用于元数据服务,而 DataNode 用于分散在一个集群中的复制存储服务。 NM是每个节点上的资源和使命管理器,一方面,它会定时地向RM报告本节点上的资源使用情况和各个Container的运行状态;另一方面,它吸收并处置惩罚来自AM的Container启动/克制等各种哀求。 Container Container 是 YARN 中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container体现的。YARN会为每个使命分配一个Container,且该使命只能使用该Container中形貌的资源。 要使用一个 YARN 集群,起首必要来自包罗一个应用步调的客户的哀求。ResourceManager 协商一个容器的须要资源,启动一个 ApplicationMaster 来体现已提交的应用步调。通过使用一个资源哀求协议,ApplicationMaster 协商每个节点上供应用步调使用的资源容器。实行应用步调时,ApplicationMaster 监督容器直到完成。当应用步调完成时,ApplicationMaster 从 ResourceManager 注销其容器,实行周期就完成了。 通过上面的学习,应该明白的一点是,旧的 Hadoop 架构受到了 JobTracker 的高度束缚,JobTracker 负责整个集群的资源管理和作业调理。新的 YARN 架构突破了这种模子,允许一个新 ResourceManager 管理跨应用步调的资源使用,ApplicationMaster 负责管理作业的实行。这一更改消除了一处瓶颈,还改善了将 Hadoop 集群扩展到比从前大得多的设置的本事。别的,差别于传统的 MapReduce,YARN 允许使用 Message Passing Interface 等标准通讯模式,同时实行各种差别的编程模子,包罗图形处置惩罚、迭代式处置惩罚、呆板学习和一样寻常集群盘算。 YARN 的工作原理MapReduce On YARNMapReduce On YARN 1)YARN 负责资源管理和调理。 2)ApplicationMaster负责使命管理。 MapReduce ApplicationMaster 1)MRAppMaster 2)每个MapReduce作业启动一个MRAppMaster 3)MRAppMaster负责使命切分、使命调理、使命监控和容错等。 MRAppMaster使命调理 1)YARN 将资源分配给MRAppMaster 2)MRAppMaster 进一步将资源分配给内部使命 MRAppMaster容错 1)MRAppMaster运行失败后,由YARN重新启动 2)使命运行失败后,MRAppMaster重新申请资源 YARN HAResourceManager HA 由一对Active,Standby结点构成,通过RMStateStore存储内部数据和紧张应用的数据及标记。现在支持的可更换的RMStateStore实现有:基于内存的MemoryRMStateStore,基于文件体系的FileSystemRMStateStore,及基于zookeeper的ZKRMStateStore。 ResourceManager HA的架构模式同NameNode HA的架构模式根本同等,数据共享由RMStateStore,而ZKFC成为 ResourceManager进程的一个服务,非独立存在。 ! |