hadoop如何分配作业以进行映射和减少

时间:2015-06-06 04:19:46

标签: hadoop mapreduce

任何人都可以解释我hadoop如何决定将作业传递到地图并减少。 Hadoop作业被传递到地图并减少,但我无法弄清楚它的完成方式。

提前致谢。

2 个答案:

答案 0 :(得分:1)

请参阅Hadoop Definitive guid,第6章,MapReduce作业运行剖析主题。快乐学习

答案 1 :(得分:0)

来自Apache mapreduce tutorial

作业配置:

Job表示MapReduce作业配置。

Job是用户向Hadoop框架描述MapReduce作业以执行的主要接口。该框架试图忠实地执行Job

所描述的工作

任务执行&环境下

MRAppMaster在单独的jvm中将Mapper/Reducer任务作为子进程执行。

<强>映射

Mapper将输入键/值对映射到一组中间键/值对。

有多少地图?

地图数量通常由输入的总大小驱动,即the total number of blocks of the input files

<强>减速

Reducer将一组中间值减少到一个较小的值集合。

作业的减少次数由用户通过Job.setNumReduceTasks(int).

设置

减少了多少?

The right number of reduces seems to be 0.95 or 1.75 multiplied by (<no. of nodes> * <no. of maximum containers per node&GT;)

工作提交和监控

职位提交流程包括:

  1. 检查作业的输入和输出规格。

  2. 计算作业的InputSplit值。

  3. 如有必要,为作业的DistributedCache设置必要的记帐信息。

  4. 将作业的jar和配置复制到FileSystem上的MapReduce系统目录。

  5. 将作业提交给ResourceManager并可选择监视其状态。

  6. 作业输入

    InputFormat描述了MapReduce作业的输入规范。 InputSplit表示由单个Mapper处理的数据。

    作业输出

    OutputFormat描述了MapReduce作业的输出规范。

    浏览该教程以进一步了解完整的工作流程。

    来自AnatomyMapReduceJobhttp://ercoppa.github.io/文章: 工作流程如下图所示。

    Hadoop Map Reduce Job Internals