MR on yarn运行流程
时间: 2023-08-25 09:06:18 浏览: 51
MR on yarn的运行流程如下:
1. 提交作业:用户将MapReduce作业提交给YARN集群的资源管理器(ResourceManager)。
2. 作业分割:ResourceManager将作业分割成多个任务(Tasks),包括一个或多个Map任务和一个或多个Reduce任务。
3. 分配资源:ResourceManager根据集群中的可用资源情况,将任务分配给不同的节点管理器(NodeManager)。
4. 启动容器:每个节点管理器接收到任务后,会为每个任务启动一个容器(Container),容器是任务运行的隔离环境。
5. 运行Map任务:容器中的Map任务会读取输入数据进行处理,并生成中间结果。
6. 拷贝中间结果:Map任务将生成的中间结果拷贝到本地磁盘,并通知ResourceManager。
7. 运行Reduce任务:容器中的Reduce任务会从不同的Map任务所在节点上获取中间结果,并进行合并、排序和归约操作,生成最终结果。
8. 输出结果:Reduce任务将最终结果写入输出目录,并通知ResourceManager。
9. 完成作业:ResourceManager接收到所有任务完成的通知后,将作业标记为完成,并通知用户。
以上就是MapReduce作业在YARN上的运行流程。YARN提供了资源管理和调度的功能,使得多个作业可以并发运行在集群上,并有效地利用集群资源。
相关问题
Spark On Yarn执行流程
Spark On Yarn执行流程大致如下:
1. 用户提交Spark应用程序到Yarn集群
2. Yarn ResourceManager接收到应用程序请求后,为该应用程序分配一个ApplicationMaster(AM)。
3. AM向ResourceManager申请资源,包括CPU、内存等,并启动Driver程序。
4. Driver程序向ResourceManager申请Executor资源,并将任务分配给Executor。
5. Executor执行任务,并将结果返回给Driver。
6. Driver将结果返回给用户。
mapreduce on yarn 执行流程
1. 提交作业:用户提交一个MapReduce作业给YARN Resource Manager(RM)。
2. 分配资源:RM从可用的Node Manager(NM)中选择一个节点作为Application Master(AM)并分配资源给它。
3. 启动AM:RM启动AM,并将启动命令和资源信息传递给它。
4. AM启动任务:AM启动MapReduce作业的第一个Map任务,并为每个Map任务分配一个Container。
5. Map任务执行:每个Map任务在自己的Container中运行,并从HDFS中读取数据进行处理。
6. Map输出:Map任务将输出写入本地磁盘,然后通过Shuffle阶段将输出发送给Reducer。
7. Shuffle阶段:Shuffle阶段从Map任务的输出中提取数据,并将数据按照Key进行排序和分组。
8. Reducer分配:AM根据Reducer数量将任务分配给Node Manager,并为每个Reducer分配一个Container。
9. Reducer执行:Reducer从Map任务的输出中获取数据,并执行Reduce操作。
10. 输出结果:Reducer将结果写入HDFS并通知AM作业已完成。
11. 作业完成:AM将作业的状态更新为完成,并将结果返回给用户。
以上是MapReduce on YARN的执行流程,其中涉及到多个组件的协作,包括RM、NM、AM、Map任务、Reducer任务等,实现了对数据的分布式处理和计算。