文档库

最新最全的文档下载
当前位置:文档库 > Hadoop中MapReduce部分执行流程

Hadoop中MapReduce部分执行流程

概括

Hadoop包括hdfs与mapreduce两部分,在试用期期间我主要看了mapreduce部分,即hadoop执行作业的部分。

1.mapreduce中几个主要的概念

mapreduce整体上可以分为这么几条执行的线索,jobclient,JobTracker与TaskTracker。

1.JobClient

每一个job都会在客户端通过JobClient类将应用程序以及配置参数打包成jar

文件存储在HDFS,然后向JobTracker提交作业,JobTracker创建Task(即MapTask 和ReduceTask)并将它们分发到各个TaskTracker服务中去执行。

2.JobTracker

JobTracker是一个master服务,hadoop服务端启动之后JobTracker接收job,负责调度job的每一个子任务task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。

3.TaskTracker

TaskTracker是运行于多个节点上的slaver服务。TaskTracker主动与JobTracker 通信,接收作业,并负责直接执行每一个任务。

下图简单的描述了三者之间的关系:(上传不了图片,抱歉!)

2.数据结构

2.1 JobInProgress

JobClient提交job后,JobTracker会创建一个JobInProgress来跟踪和调度这个job,并把它添加到job队列里。JobInProgress会根据提交的job jar中定义的输入数据集(已分解成FileSplit)创建对应的一批TaskInProgress用于监控和调度MapTask,同时在创建指定数目的TaskInProgress用于监控和调度ReduceTask,缺省为1个ReduceTask。