赞
踩
Hadoop YARN(Yet Another Resource Negotiator
)是Apache Hadoop生态系统中的一个子项目,它是用于集群资源管理的框架,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序
。
YARN的基础架构主要由以下几个组件组成:
ResourceManager
(资源管理器):
NodeManager
(节点管理器):
ApplicationMaster
(应用程序主管):
Container
(容器):
假设用户提交了一个MapReduce作业到Hadoop集群,并且该集群上已经运行了YARN。
用户提交作业:
用户通过Hadoop集群的客户端工具(如hadoop jar
命令)提交了一个MapReduce作业,该作业包含了需要处理的数据、Mapper函数、Reducer函数等信息。
作业提交到ResourceManager:
当作业提交时,ApplicationManager接收到了这个作业的提交请求。ApplicationManager向ResourceManager注册一个新的应用程序,并向ResourceManager提供作业的资源需求。
ResourceManager分配资源:
ResourceManager接收到作业的资源需求后,调度器(Scheduler)开始分配资源。调度器根据集群中各节点的资源情况和作业的需求,决定在哪些节点上启动作业的任务。它为作业分配了一系列容器(Containers)来运行Mapper和Reducer任务。
容器启动:
ResourceManager通过与各个NodeManager通信,在选择的节点上启动了容器。每个容器中运行一个作业任务,其中包括Mapper任务和Reducer任务。
任务执行:
在容器中启动的Mapper任务会读取输入数据,并按照用户指定的Mapper函数进行处理;Reducer任务会接收来自Mapper的中间结果,并按照用户指定的Reducer函数进行处理。这些任务在各自的容器中并行执行。
监控和状态更新:
各个NodeManager会定期向ResourceManager发送心跳信息,报告节点的健康状况和可用资源。同时,各个容器会向对应的NodeManager发送进度和状态更新信息。ResourceManager和NodeManager根据这些信息来监控作业的执行情况,并在需要时进行调度和容错处理。
作业完成:
当所有的Mapper和Reducer任务都成功完成时,作业的执行状态被更新为完成,并向用户返回执行结果。ApplicationManager收到作业完成的通知后,将作业的执行结果返回给用户。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。