1、eclipse3.3+hadoop0.20.2搭建的开发环境,可以用来调试程序,其中,hadoop以伪分布式方式运行。当程序在单机的伪分布式情况下运行无误时,就要到真正的分布式环境中运行mapreduce程序了。 可能真正分布式hadoop平台使用的hadoop版本与调试环境下实用的hadoop版本不一样,那么就要先在hadoop框架中编译程序,打包成jar程序,再在hadoop命令行运行程序。
2、好在可以得到wordcount的源码,安装后它被放在src/examples/org/apache/hadoop/examples/WordCount.java 中。我们可以根据需要来修改它。首先我们建立一个playground的目录结构并复制这个程序。(在hadoop安装目录下)
mkdir playground
mkdir playground/src
mkdir playground/classes
cp src/examples/org/apache/hadoop/examples/WordCount.java playground/src/WordCount.java
在Hadoop框架中编译和执行这个副本:
javac -classpath hadoop-core-1.0.4.jar:lib/commons-cli-1.2.jar -d playground/classes playground/src/WordCount.java
-d [目标目录] 需要编译的源文件,可能有多个 .java文件
打包:
jar -cvf playground/WordCount.jar -C playground/classes/ .
注意:上面一行最后的点(“.”)不能丢
运行:
bin/hadoop jar playground/WordCount.jar org.apache.hadoop.examples.WordCount input output
jar文件 WordCount与java文件中的类名相同