MapReduce中Shuffle原理剖析和资源调度 框架YARN详解

MapReduce中Shuffle原理详解

1、概述 1、MapReduce 中,map 阶段处理的数据如何传递给 reduce 阶段,是 MapReduce 框架中最关键的
一个流程,这个流程就叫 Shuffle;
2、Shuffle: 数据汇洗 就是将 maptask 输出的处理结果数据,分发给
reducetask。
2、主要流程
在这里插入图片描述
Shuffle 是 MR 处理流程中的一个过程,它的每一个处理步骤是分散在各个 map task 和 reduce
task 节点上完成的,整体来看,分为4个操作:
1、分区 partition
2、Sort 根据 key 排序(MapReduce 编程中的 sort 是一定会做的,一定仅按照 key 排序)
3、Combiner 进行局部 value 的合并(Combiner 是可选的组件)
4、分组

资源调度框架YARN详解

YARN概述 YARN(Yet Another Resource Negotiator)
Yarn 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作 系统平 台,而 MapReduce等运算程序则相当于运行于操作系统之上的应用程序。
有以下注意点:
1、yarn 并不清楚用户提交的程序的运行机制
2、yarn只提供运算资源的调度(用户程序向 yarn 申请资源,yarn 就负责分配资源)
3、yarn 中的主管角色叫 ResourceManager
4、yarn 中提供运算资源的角色叫 NodeManager
5、yarn 与运行的用户程序解耦
6、spark、storm 等运算框架都可以整合在 yarn 上运行
7、yarn 就成为一个通用的资源调度平台

Yarn架构
在这里插入图片描述

作业提交流程

1、用户向 YARN 中提交应用程序,其中包括 ApplicationMaster 程序,启动 ApplicationMaster 的命 令,用户程序等
2、ResourceManager 为该程序分配第一个 Container,并与对应的 NodeManager通讯,要求它在 这个 Container 中启动应用程序 ApplicationMaster
3、ApplicationMaster 首先向 ResourceManager注册,这样用户可以直接通过 ResourceManager 查看应用程序的运行状态,然后将为各个任务申请资源,并监控它的运行状态,直到运行结束,重复 4 到 7 的步骤
4、ApplicationMaster 采用轮询的方式通过 RPC 协议向 ResourceManager 申请和领取资源
5、一旦ApplicationMaster 申请到资源后,便与对应的 NodeManager 通讯,要求它启动任务
6、NodeManager为任务设置好运行环境后,将任务启动命令写到一个脚本中,并通过运行该脚本启 动任务
7、各个任务通过RPC 协议向ApplicationMaster 汇报自己的状态和进度,以让 ApplicationMaster 随 时掌握各个任务的运行状态。
8、应用程序运行完成后,AM 向 RM 注销并关闭自己

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值