Hadoop MapReduce 1.x 工作原理

Posted @SmartSi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop MapReduce 1.x 工作原理相关的知识,希望对你有一定的参考价值。

下面解释一下作业在经典的 MapReduce 1.0 中运行的工作原理。最顶层包含4个独立的实体:

  • 客户端:提交 MapReduce 作业。
  • JobTracker:协调作业的运行。JobTracker 是一个Java应用程序,它的主类是 JobTracker。
  • TaskTracker:运行作业划分后的任务。TaskTracker 是一个 Java 应用程序,它的主类是 TaskTracker。
  • 分布式文件系统(一般为HDFS):用来在其他实体间共享作业文件。

1. 作业提交

Job 的 submit() 方法创建一个内部的 JobSunmmiter 实例,并且调用其 submitJobInternal() 方法。提交作业后,waitForCompletion() 每秒轮询作业的进度,如果发现自上次报告后有改变,便把进度报告到控制台。作业完成后,如果成功,就显示作业计数器。如果失败,导致作业失败的错误被记录到控制台。

JobSunmmiter 所实现的作业提交过程如下:

  • 通过调用 JobTracker 的 getNewJobId() 方法向 JobTracker 请求一个新的作业ID。参见上图步骤2。
  • 检查作业的输出。例如,如果没有指定输出目录或者输出目录已经存在,作业就不提交,错误抛回给 MapReduce 程序。
  • 计算作业的输入分片。如果分片无法计算,比如因为输入路径不存在,作业不会提交,错误返回给 MapReduce 程序。
  • 将运

以上是关于Hadoop MapReduce 1.x 工作原理的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop 4Hadoop MapReduce的工作原理

hadoop细读MapReduce的工作原理

Hadoop之MapReduce工作原理

Hadoop MapReduce 2.x 工作原理

请简要描述Hadoop计算框架MapReduce的工作原理

大数据之Hadoop(MapReduce): MapReduce框架原理