打包
为了能够在命令行中运行程序,首先需要对他进行编译和打包,下面就分别展示了编译和打包的过程
编译代码如下:
javac -classpath /usr/local/hadoop/hadoop-1.0.1/hadoop-core-1.0.1.jar -d wordcount_class wordcount.java
上述命令会将wordcount.java编译后的所有class 文件到wordcount_class文件夹下,执行下面的命令打包所有的class文件:
jar -cvf /usr/local/hadoop/hadoop-1.0.2/bin/wordcount.jar -C wordcount_class/.
标明清单(mainfest)
增加:wordcount$Map.class
增加:wordcount$Readuce.class
增加:wordcount.class
在本地模式下运行
hadoop jar wordcount.jar input output
在集群上运行
首先将输入的文件复制到hdfs钟,用以下命令完成该功能
hadoop dfs -copyFromLocal /input
下面用命令行中运行程序
hadoop jar /wordcount.jar wordcount inpout output
执行上述命令运行wordcount.jar中的wordcount类,并且将input作为输入,output作为输出
返回结果:
通过命令行直接显示输出文件夹中的文件
hadoop dfs -ls output
通过以上命令 的执行结果可以发现,输出的结果中一共有6个文件
将输出的文件从hdfs复制到本地文件系统上,在本地文件系统上查看
命令如下:
hadoop dfs -get output/* /home/u/output
还可以在命令行中将输出的文件合并成一个文件,并复制到本地文件系统中
hadoop dfs -getmerge output/* /home/u/output