本文以 Hadoop 2.4.1 环境下的WordCount实例来介绍 2.x 版本中如何编辑自己的MapReduce程序。
Hadoop 2.x 版本中jar不再集中在一个 hadoop-core*.jar 中,而是分成多个 jar,如运行WordCount实例需要如下三个 jar:
将上述 jar 添加至 classpath 路径:
?
接着就可以编译 WordCount.java 了(使用的是 2.4.1 源码中的 WordCount.java,源码在文本最后面):
编译时会有警告,可以忽略。编译后可以看到生成了几个.class文件。
使用Javac编译自己的MapReduce程序
接着把 .class 文件打包成 jar,才能在 Hadoop 中运行:
打包完成后,运行试试,创建几个输入文件:
创建WordCount的输入
开始运行:
不过这边可能会遇到如下的提示 Exception in thread "main" java.lang.NoClassDefFoundError: WordCount :
提示找不到 WordCount 类
因为程序中声明了 package ,所以在命令中也要 org.apache.hadoop.examples 写完整:
正确运行后的结果如下:
WordCount 运行结果
文件位于 hadoop-2.4.1-src\hadoop-mapreduce-project\hadoop-mapreduce-examples\src\main\java\org\apache\hadoop\examples 中: