Map-Reduce工作机制
2016-01-24 15:27:12 3 举报
Map-Reduce是一种编程模型和处理大量数据的相关实现。其工作原理是将大数据分解成许多小任务,然后并行处理这些任务。Map阶段将输入数据分解为键值对,并交由不同的节点进行处理。Reduce阶段则负责将所有具有相同键的值组合在一起,从而形成最终的输出结果。这种分布式计算模式使得Map-Reduce能够高效地处理海量数据,同时具有良好的扩展性和容错性。
作者其他创作
大纲/内容
JobTracker在本地初始化作业,再从HDFS作业资源中获取作业输入的分割信息,根据这些信息JobTracker将作业分割成多个任务,然后分配给在与JobTracker心跳通信中请求任务的TaskTracker。TaskTracker接收到新的任务之后会首先从HDFS上获取作业资源,包括作业配置信息和本作业分片的输入,然后在本地启动一个JVM并执行任务。任务结束后将结果写回HDFS。
4
提交作业请求
MapReduce程序
JVM环境
2
JobTracker节点
启动任务
初始化,创建作业对象
Child
7
JobTracker
登陆子JVM
JobClient
获得输入划分
9
运行job
HDFS
1用户作业执行JobClient.runJob(conf)代码会在Hadoop集群上将其启动。启动之后JobClient实例会向JobTracker获取JobId,而且客户端会将作业执行需要的作业资源复制到HDFS上,然后将作业提交给JobTracker。
发送作业请求号
保持心跳连接
8
JobTracker初始化本地作业
1、\tclient提交任务,运行一个job2、\tclient向jobtracker索取一个新的jobid3、\tclient将所有信息上传到分布式系统中。4、\tclient通知jobtracker提交任务完毕。5、\tjobtracker将任务初始化,其实就是将任务加入到任务队列中排队。直到运行到这个任务。6、\tjobtracker查看client提交的任务处理的输入是否合法,并作分割。7、\t通知含有数据的tasktracker进行任务。8、\ttasktracker接扫任务后,将client提交的资料从分布式系统中拿出来,启动虚拟机执行任务,其中可以是map任务,也可以是reduce任务,执行map任务的是map task,执行reduce任务的是reduce task。9、\tmap任务执行完的中间结果存到内存和硬盘两部分,reduce会通过查看map的执行地点,主动来拿数据,并且做reduce任务。上述流程结束后,就是真正map和reduce代码的执行流程了
获得资源划分
3
6
1
5
复制作业资源文件
10
0 条评论
下一页