阅读文本大概需要 2 分钟。

MapReduce job 有四种运行模式。

在 eclipse 中开发好 MapReduce 程序(windows或linux下都可以),然后打成 jar 包(wc.jar),上传到服务器,执行命令。

hadoop jar wc.jar cn.zhang.hadoop.MainClassRunner

这种方式会将这个 job 提交到 yarn 集群上去运行。

在 linux 的 eclipse 中直接启动 Runner 类的 main 方法,这种方式可以使 job 运行在本地,也可以运行在 yarn 集群。究竟运行在本地还是在集群,取决于一个配置参数。

mapreduce.framework.name == yarn (local)

如果确实需要在 eclipse 中提交到 yarn 执行,必须做好以下两个设置。一是将 MapReduce 工程打成 jar 包(wc.jar),放在工程目录下。二是在工程的 main 方法中,加入一个配置参数。

conf.set("mapreduce.job.jar","wc.jar");

在 windows 的 eclipse 中运行本地模式,步骤分为三步。

1. 在 windows 中找一个地方放一份 hadoop 的安装包,并且将其 bin 目录配到环境变量中。

2. 根据 windows 平台的版本(32/64/win7/win8),替换掉 hadoop 安装包中的本地库(bin,lib)。

3. MapReduce 程序的工程中不要有参数 mapreduce.framework.name 的设置。

在 windows 的 eclipse 中运行 main 方法来提交 job 到集群执行,比较麻烦。

1. 类似于方式三中所描述的对本地库兼容性进行改造。

2. 修改 YarnRunner 这个类

希望,您能有收获。

一条迷途的咸鱼,

总有一天会游向属于它的天地!