Yarn作业调度和集群资源管理系统简介:
Yarn 是一个包管理器, 它允许你使用并分享代码给全世界的开发者, Yarn 做这些快捷、安全、可靠,所以你不用担心什么。Yarn
允许你使用其他开发者的解决方案处理不同的问题,让你开发软件更容易。
YARN 分层结构的本质是 ResourceManager。这个实体控制整个集群并管理应用程序向基础计算资源的分配。ResourceManager
将各个资源部分(计算、内存、带宽等)精心安排给基础 NodeManager(YARN 的每节点代理)。ResourceManager 还与
ApplicationMaster 一起分配资源,与 NodeManager 一起启动和监视它们的基础应用程序。ApplicationMaster 管理一个在 YARN 内运行的应用程序的每个实例。ApplicationMaster 负责协调来自
ResourceManager 的资源,并通过 NodeManager
监视容器的执行和资源使用(CPU、内存等的资源分配)。请注意,尽管目前的资源更加传统(CPU
核心、内存),但未来会带来基于手头任务的新资源类型(比如图形处理单元或专用处理设备)。从 YARN 角度讲,ApplicationMaster
是用户代码,因此存在潜在的安全问题。YARN 假设 ApplicationMaster 存在错误或者甚至是恶意的,因此将它们当作无特权的代码对待。NodeManager 管理一个 YARN 集群中的每个节点。NodeManager
提供针对集群中每个节点的服务,从监督对一个容器的终生管理到监视资源和跟踪节点健康。MRv1 通过插槽管理 Map 和 Reduce 任务的执行,而
NodeManager 管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。YARN 继续使用 HDFS 层。它的主要 NameNode
用于元数据服务,而 DataNode 用于分散在一个集群中的复制存储服务。旧的 Hadoop 架构受到了 JobTracker 的高度约束,JobTracker 负责整个集群的资源管理和作业调度。新的 YARN
架构打破了这种模型,允许一个新 ResourceManager 管理跨应用程序的资源使用,ApplicationMaster
负责管理作业的执行。这一更改消除了一处瓶颈,还改善了将 Hadoop 集群扩展到比以前大得多的配置的能力。此外,不同于传统的 MapReduce,YARN
允许使用 Message Passing Interface
等标准通信模式,同时执行各种不同的编程模型,包括图形处理、迭代式处理、机器学习和一般集群计算。所以yarn解决了扩展性差,单点故障以及只能局限于MR计算框架等的问题。Yarn
会缓存它下载的每个包,所以不需要重复下载。它还能并行化操作以最大化资源利用率,所以安装速度之快前所未有。
网址入口:https://yarnpkg.com/zh-Hans/