繁体   English   中英

编译Hadoop 2.2.0工作?

[英]Compile Hadoop 2.2.0 job?

似乎所有示例都是在考虑旧版本的情况下构建的。

如何在Ubuntu上编译我的java程序,以便它将引用hadoop-2.2.0库?

我应该包含哪些jar文件?

命令是什么? 是不是 -

javac -classpath libraries wordcount.java

谢谢。

Linux机器最简单的解决方案是:

javac -classpath `yarn classpath` -d . WordCount.java

要么:

export CLASSPATH=`yarn classpath`
javac -classpath $CLASSPATH -d . WordCount.java

我找到了以下内容:

javac -classpath $HADOOP_HOME/share/hadoop/common/hadoop-common-2.2.0.jar:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.2.0.jar:$HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar -d wordcount_classes myWordCount.java

这允许我编译Wordcount示例(或者在本例中是我的一个名为myWordCount的副本)。

Hadoop有一个命令“hadoop classpath”,它为您提供必要的类路径。

hadoop classpath / etc / hadoop / conf:/ usr / lib / hadoop / lib / :/ usr / lib / hadoop /.//:/ usr / lib / hadoop-hdfs /./:/ usr / lib / hadoop-hdfs / lib / :/ usr / lib / hadoop-hdfs /.//:/ usr / lib / hadoop-yarn / lib / :/ usr / lib / hadoop-yarn /.//:/ usr / lib / hadoop-mapreduce / lib / :/ usr / lib / hadoop-mapreduce /.//

所以,如果你想编译,你可以这样使用它..

javac -classpath $(hadoop classpath)-d。 WordCount.java

你必须安装Cygin,你可以运行你的hadoop示例,你也可以用eclipse配置你的hadoop

运行命令:“yarn classpath”以查看目录列表。 当我使用这个列表作为javac的-classpath选项时,我的Java程序编译。

我正在运行HortonWorks v2.0,Apache Hadoop 2.2.0。

我也在使用Hadoop示例罐子。 许多视频/教程/博客中的信息都基于旧版本。

当我们编译这些示例或编写任何我们自己的MapReduce程序时,它将使用hadoop包(即在IDE中导入jar /添加对外部jar的引用 - 类似于在MS Visual Studio中添加对.dll的引用),IDE将负责为每个班级正确调用javac。

现在要手动编译任何类,例如WordCount.java,我们需要告诉javac我们的类所依赖的所有jar。 我按照过时的视频,但共享一个信息,即在.bashrc中设置变量,引用所有Hadoop相关的jar文件,然后在javac -classpath $ VARIABLE filename.java中使用它。

例如,我使用的名称为$ HADOOP_CLASSPATH,其值如此处所示(我在Mac OS X上)

/ usr / local / hadoop / etc / hadoop:/ usr / local / hadoop / etc / hadoop:/ usr / local / hadoop / etc / hadoop:/ usr / local / hadoop / share / hadoop / common / lib / :/ usr / local / hadoop / share / hadoop / common / :/ usr / local / hadoop / share / hadoop / hdfs:/ usr / local / hadoop / share / hadoop / hdfs / lib / :/ usr / local / hadoop / share / hadoop / hdfs / :/ usr / local / hadoop / share / hadoop / yarn / lib / :/ usr / local / hadoop / share / hadoop / yarn / :/ usr / local / hadoop / share / hadoop / mapreduce / lib / :/ usr / local / hadoop / share / hadoop / mapreduce / :/ contrib / capacity-scheduler / .jar:/ usr / local / hadoop / share / hadoop / yarn / :/ usr / local / hadoop / share / hadoop /纱/ lib目录/ *

使用此变量,我可以成功编译类。 “javac -classpath $ HADOOP_CLASSPATH WordCount.java”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM