Hadoop MapReduce作业的生命周期----Hadoop技术内幕学习笔记

本文深入探讨了MapReduce作业的整个生命周期,包括作业提交与初始化、任务调度与监控、运行环境准备、任务执行以及作业完成的过程。通过理解这些关键阶段,读者能够全面掌握MapReduce作业如何在分布式环境下高效执行。

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

225205_47Z5_256373.png

1、作业提交与初始化。用户提交作业后,首先由JobClient实例将作业相关信息,比如将程序jar包、作业配置文件、分片元信息等上传到分布式文件系统,其中,分片元信息文件记录了每个输入分片的逻辑位置信息。然后JobClient通过RPC通知JobTracker。JobTracker收到新作业提交请求后,有作业调度模块对作业进行初始化:为作业创建一个JobInProgress对象以跟踪作业运动状况,而JobInProgress则会为每个Task创建一个TaskInProgress对象以跟踪每个任务的运行状况,TaskInProgress可能需要管理多个”Task运行尝试“TaskAttempt。

2、任务调度与监控。任务调度与监控均由JobTracker完成。TaskTracker周期性地通过Heartbeat向JobTracker汇报本节点的资源使用情况。一旦出现空闲资源,JobTracker会按照一定的策略选择一个合适的任务使用该空闲资源,这由任务调度器完成。任务调度器是一个可插拨的独立模块,且为双重架构,即首先选择作业,然后从该作业中选择任务,其中选择任务时需要考虑任务本地性。

此外,JobTracker跟踪作业的整个运行过程,并为作业的成功提供全方位的保障。首先TaskTracker或Task失败是转移计算任务;其次,但某个Task的执行进度远落后于同一作业的其它Task时,为之启动一个相同Task,并选取计算快的Task作为最佳结果。

3、任务运行环境准备。运行环境准备包括JVM启动和资源隔离,均由TaskTracker实现。TaskTracker为每个Task启动一个独立的JVM以避免不同Task在运行过程中相互影响;同时,TaskTracker使用了操作系统进程实现资源隔离以防止Task滥用资源。

4、任务执行。TaskTracker为Task准备好运行环境后,便会启动Task。在运行过程中,每个Task的最新进度首先由Task通过RPC汇报给TaskTracker,再由TaskTracker 汇报给Jobtracker.

5、作业完成。待所有Task执行完毕后,整个作业执行完成。

了解了整个作业的生命周期,不禁想立马往后翻了解更多东西,这真是本好书。


转载于:https://my.oschina.net/u/256373/blog/215269

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值