![](/img/trans.png)
[英]Exception when Servlet try to run Hadoop 2.2.0 MapReduce Job
[英]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.