在hadoop框架中编译执行程序

来源:互联网 发布:手机陀螺仪校准软件 编辑:程序博客网 时间:2024/06/03 21:29

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文件中的类名相同



原创粉丝点击