WordCount编译运行过程及shell脚本实现

8970阅读 0评论2014-06-25 bl竹子
分类:HADOOP

今天整了一天的hadoop的mapreduce,因为是今天才接触,花了一天才整好一个简单实例WordCount,下面是总结:

1、把java文件编译成class文件,命令:javac -classpath path/to/hadoop/hadoop-*-core.jar test.java 
   注意:有时候由于缺少路径会导致出错,此时需要自己加上路径,例如:javac -classpath /data1/sysdir/hadoop-2.2.0/hadoop-0.20.2-core.jar:/data/sysdir/hadoop-0.20.2/lib/commons-cli-1.2.jar -d WordCount        WordCount.java
   说明:-d命令代表生成到的class文件放到一个文件夹中。

2、将class文件打包成jar文件:jar cvf WordCount.jar *.class

3、构造输入文件:touch input1.txt input2.txt

4、在hadoop上新建目录,和put程序运行所需要的输入文件:
    hadoop fs -mkdir /tmp/input
    hadoop fs -put input.txt /tmp/input/

5、 运行程序,会显示job运行时的一些信息:hadoop jar WordCount.jar WordCount /tmp/input /tmp/output
6、查看运行结果: hadoop fs -ls /tmp/output/(查看文件)hadoop fs -cat /tmp/output/文件名(显示文件内容)

注:要是反复运行时需要将输入文件删除:hadoop dfs -rmr /tmp/output,其中output是输出文件


下面是一个shell脚本:

点击(此处)折叠或打开

  1. #!/bin/sh


  2. echo "delete out/in file"


  3. hadoop dfs -rmr /tmp/output
  4. hadoop dfs -rmr /tmp/input


  5. echo "delete class and jar file, then repackaging ..."
  6. rm -rf ./"$1"/*.*
  7. javac -classpath /data1/sysdir/hadoop-2.2.0/hadoop-0.20.2-core.jar:/data/sysdir/hadoop-0.20.2/lib/commons-cli-1.2.jar -d "$1" "$1".java


  8. cd "$1"


  9. jar cvf "$1".jar *.class


  10. hadoop fs -mkdir /tmp/input


  11. hadoop fs -put ../"$2" /tmp/input/


  12. hadoop jar "$1".jar "$1" /tmp/input /tmp/output


脚本简要说明:本脚本需要两个输入参数:java程序名(不要加后缀);输入文件名

本文出自:http://blog.chinaunix.net/uid/28311809/abstract/1.html
上一篇:基本的图算法
下一篇:Spark On Yarn环境搭建