关于MapReduce6 – 重构WordCount

这里是一个更完整的WordCount实例。在这个实例中使用了很多前面提到的MapReduce框架的特性。

这个实例需要HDFS支持运行,尤其是关于DistributedCache的一些特性。因此,这个实例只能运行于伪分布式或者完全分布式安装的Hadoop上。

看下源代码:

关于MapReduce5 – 一些有用的特性

提交作业到队列

用户将作业提交到队列。队列是作业的集合,允许系统添加特定的功能,比如,队列通过ACL决定哪些用户可以提交作业。通常主要由Hadoop调度器使用队列。

Hadoop的配置信息使用了一个单独的托管队列,被称为“default”。队列的名称是由mapreduce.job.queuename定义的(Hadoop的site配置)。一些作业调度器支持多重队列…

关于MapReduce4 – 作业的输入输出

作业的输入

InputFormat

InputFormat描述了MapReduce作业的输入规范。

MapReduce框架根据MapReduce作业的InputFormat来做这些事情:

  • 校验作业的输入配置;
  • 把输入文件切分成多个逻辑上的InputSplit实例,并把每个实例分发给一个Mapper;
  • 提供RecordReader实现类,从逻辑InputSplit中收集输

关于MapReduce3 – 作业的配置和执行

配置

一个Job就表示了一个MapReduce的作业配置。

Job是用户向Hadoop框架描述一个MapReduce作业如何执行的最主要的接口。框架会尽力按Job的描述去忠实地执行一个作业,但是:

  • 一些配置参数可能会被管理员标记为final(了解下final参数),这意味着不能被更改;
  • 作业的一些参数可以被直接设置(比如Job.setNumReduceTasks(i

关于MapReduce2 – Job主体

这一部分内容会适当深入说明用户即将面对的MapReduce框架的各个环节。这有助于用户从一个更细的粒度地去实现、配置、调优作业。

我们先看看Mapper和Reducer接口。通常应用程序实现这两个接口需要提供map和reduce方法。

然后我们会讨论下其他的核心接口,包括Job,Partitioner,InputFormat,OutputFormat等接口。

最后…

关于MapReduce1 – QuickStart

概述

Hadoop Mapreduce是一个简单易用的框架。基于MapReduce写出来的程序能够运行在由上千台商用机器组成的大型集群上,以一种可靠的容错的方式并行处理T级别的海量数据。

一个MapReduce作业通常会把输入的数据集拆分成独立的块,由map任务(task)以完全并行的方式处理。框架先对map的输出结果进行排序,排好序的结果会做为reduce任务的…