Ubantu12.04下hadoop-1.2.1运行第一个例子wordcount过程,分享一下
将WordCount.java文件放在Hadoop安装目录下,并在安装目录下创建输入目录input,目录下有输入文件file1,file2,其中:
file1内容:hello world
file2内容:hello hadoop
hello mapreduce
准备好之后在命令行输入运行,下面对执行的命令进行介绍:
注:在此之前必须启动hadoop的所有服务。
在启动之前,需要格式化Hadoop的文件系统HDFS ,进入Hadoop文件夹。输入命令:bin/hadoop namenode -format
格式化文件系统,接下来启动Hadoop所有进程,输入命令:bin/start-all.sh(中间无空格)
然后查看是否启动成功,输入命令:jps
如下所示即可:
wangnan@slave1:~/hadoop-1.2.1$ jps
3866 DataNode
4102 SecondaryNameNode
4192 JobTracker
4430 TaskTracker
8576 Jps
4700 NameNode
(1)在集群上创建输入文件夹
bin/hadoop fs -mkdir wordcount_input
(2)上传本地目录input下前四个字符的为file的文件到集群上的 input 目录下:
bin/hadoop fs -put input/file* wordcount_input
(3)编译WordCount.java程序,将结果放入当前目录的WordCount目录下(在此之前首先在hadoop安装目录下创建一WordCount个目录,即新建文件夹):
javac -classpath hadoop-core-1.2.1.jar:lib/commons-cli-1.2.jar -d WordCount WordCount.java
(4)将编译结果打包jar
首先进入hadoop-1.2.1/WordCount/org/apache/hadoop/examples下,也就是进入class文件目录如图:
输入命令:jar cvf WordCount.jar *.class
(5)在集群上运行WordCount程序,以input目录为输入目录,output为输出目录:
bin/hadoop jar hadoop-examples-1.2.1.jar wordcount wordcount_input wordcount_output
(6)查看输出结果:
bin/hadoop fs -cat wordcount_output/part-r-00000
(7)最后运行代码如下:
hello 3
world 1
hadoop 1
mapreduce 1
不同机器可能遇到不同的问题,可以参考一下解决方法:
MapReduce——WordCount问题总结 http://blog.sina.com.cn/s/blog_7fcb1aef0100zpux.html