Hadoop学习——向MapReduce提交计算任务的基本流程

本文详细介绍了客户端如何向MapReduce框架提交任务的过程,包括通过RPC协议请求资源管理器(RM),RM从HDFS获取JAR包路径并返回给客户端,客户端将JAR包写入HDFS,RM调度任务及NM通过心跳机制领取任务等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章节介绍学习了客户端(Client)向MapReduce计算框架提交任务的基本过程。


这里写图片描述

1、客户端(Client)通过RPC协议(远程控制协议)向RM(Resource Manager)发送一个请求:我要向你提交一个job。

2、RM在收到客户端请求后回去HDFS(hadoop文件系统)获取一个存储JAR包的路径(Path)。

3、RM向Client返回Job ID和向HDFS获取的Path。

4、Client将Job ID和Path组合作为路径向HDFS写入JAR包,默认写10份。
注意1:Job ID + Path可以组成JAR包再HDFS中存放的唯一路径。
注意2:默认写10份可以理解为是将JAR包写入10台机器,NM(node manager)从10台机器获取JAR包,压力小。
注意3:运行完成后会将JAR包删除,所以不必担心JAR包占用控件过大。

5、在写入成功后,Client会将Job ID和存放JAR的地址提交给(通过将这两个信息作为RPC协议参数的方式传递)。
注意:RM中保存的是任务信息,而非job本身。

6、RM在收到Client发来的任务详情后会将其放入调度器中。
RM的调度器一般有两种:
(1)、公平调度器:每一个任务都有执行的机会(比如任务A执行一会,再去执行任务B…)。
(2)、先进先出调度器(队列):一个一个的执行任务。

7、RM向HDFS查询任务量,以计算需要开启多少个Map和Reduce。

8、NM通过心跳机制向RM领取任务信息。
注意:RM(老大)在向NM(小弟)分配任务时,并非是RM向NM指派任务,而是NM通过心跳机制向RM领取任务,NM每过一段时间变向RM查询,若有任务则领取,若无任务,则等待(这样极大减小了RM的开销)。

9、NM在领取到任务信息后,向HDFS获取要执行的JAR包。

10、NM在领取到JAR后,会开启一个(子)进程运行MapReduce。
注意:这里开启的是进程,独立于NM的进程。
10.1、(子)进程中的MapTracker会向HDFS中取数据,处理后返回给HDFS。
10.2、(子)进程中的ReduceTracker会向HDFS中取数据,处理后返回给HDFS。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值