在前面我们已经搭建出来了Hadoop的开发环境,又实现了Eclipse插件的编译,现在我们就用使用Hadoop运行一下其自带的WordCount程序,以初步了解一些Hadoop是怎么运行的,我们采取两种方式运行这个小程序,首先是在Eclipse的环境中将WordCount程序直接运行到Hadoop上然后观察结果,然后再将WordCount程序打成jar包使用hadoop命令进行运行测试
下面我们先使用第一种方式来运行
在Eclipse中建立一个Java工程,将Hadoop依赖的jar包导入(这里也可以直接建立MapReduce工程Eclipse将自动将所依赖的包导入),然后将hadoop-1.2.1/src/examples/org/apache/hadoop/examples/WordCount.java拷贝到工程中,如下图:
运行该程序很简单,由于需要两个参数一个是输入路径,一个输出路径,所以对着程序右键点击运行时选择Run Confgurations然后设置相应的参数,如下图:
我们的输入input中的内容如下:
然后运行程序,此时如果控制台没有打出异常信息,通常则表示运行成功,通过刷新蓝色大象图标,可以看到产生了新的output目录,目录下存在两个文件,其中part-r-00000文件即为输出的结果,如下图所示:
第二种方式就是将程序打成jar然后运行,打jar包时可以有两种方式,一种是普通的jar包,一种是可执行jar包,这两种的不同之处,在于运行时的命令稍微有点差别,普通的jar包在执行时需要指定主函数,可执行jar由于在打包时已指定所以在运行时就不需要再指定了,如下图:
1.对于打成普通jar的,我这里命名为wordcount.jar,运行时命令如下
hadoop jar wordcount.jar org.apache.hadoop.examples.WordCount /input /output1
2.对于打包成可执行jar的,运行的命令如下
hadoop jar wordcount.jar /input /output2
可以通过hadoop fs -cat /output/part-r-00000来查看执行的结果
这里需要注意的是,对于mapreduce程序,其输出路径不能事先创建,否则执行时hadoop将会抛出异常,并终止执行