好记性不如烂笔头---MapReduce1作业运行机制

来源:互联网 发布:db2还原数据库指令 编辑:程序博客网 时间:2024/06/05 19:02

学习hadoop先从搞懂作业运行机制开始,不看懂运行机制总感觉MapReduce的执行是一件很神秘的事情,现在来解开她的神秘面纱,本想自己看看书就算了,但是记忆力真的是个好东西,然而我却没有。。。只好把看到的内容记下来,也好留下更深的印象。另外,本文内容摘抄自《hadoop权威指南第3版》。

jobtracker接收到对其的submitjob()方法的调用后,会把此调用放入一个内部队列中,交由作业调度器进行调度,并对其进行初始化。初始化包括创建一个表示正在运行作业的

对象,用于封装任务和记录信息,以便跟踪任务的状态和进程。

       作业调度器首先从客户端也就是master节点获取已经计算好的输入分片,为每个分片创建一个map任务,reduce任务个数取决于一些设置,任务在此时被指定id。

       除了map任务和reduce任务还会创建两个任务:作业创建和作业清理。在map任务运行之前运行代码来创建作业,并在reduce任务完成之后完成清理工作。作业创建为作业创

建输出路径和临时工作空间,作业清理清除作业运行过程中的临时目录。

       tasktracker被分配任务后,就该运行该任务,第一步,从共享文件系统中复制jar文件到tasktracker所在的文件系统,将文件从分布式缓存中复制到本地磁盘,第二步,

tasktracker为任务新建一个本地工作目录,并把jar文件解压到该工作目录,,第三步,tasktracker新建一个taskrunner实例运行该任务。taskrunner启动一个新的JVM来运行每个任

务,每个任务都能执行搭建和清理动作,它们和任务在一个jvm中执行,清理动作用于提交任务,在基于文件的作业中意味着它的输出写到该任务的最终位置。在Streaming

和pipes中,任务执行过程中,Java进程把输入键值对传给外部进程,外部进程用过用户定义的map和reduce函数来执行并把输出的键值对传回给Java进程。从tasktracker的角度

看,就像tasktracker的子进程自己处理map和reduce代码一样。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 上岗证怎么办 去芭提雅要怎么办 金旺缺土怎么办 文综差怎么办 泪点高怎么办 哭点低怎么办 笑点太高怎么办 痛经怎么办? 同工不同酬怎么办 保不上研怎么办 痘根很深很难挤怎么办 翼龙贷还不上会怎么办 金税盘已到锁死怎么办 000013怎么办 申根拒签怎么办 绝经}怎么办 研招网进不去怎么办 门打不开怎么办 动车买到无座怎么办 买到高铁无座怎么办 痔疮怎么办 侧手翻腿不直怎么办 间歇热怎么办 肾上长瘤怎么办 哮喘病怎么办 脸大怎么办 鼻痒鼻干怎么办 streamreaderror怎么办 花猫脸怎么办 多疑怎么办 疑心病怎么办 netkeeper209怎么办 轧死猫怎么办 怎么办暂住证 暂住证怎么办 科四没去考怎么办 驾驶证怎么办 怎么办驾驶证 保险怎么办 c1d怎么办 绿萝生小白虫怎么办