您的位置:首页 > 运维架构

在hadoop框架中编译执行程序

2013-01-04 14:32 429 查看
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文件中的类名相同
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: