似乎所有的例子都是在考虑旧版本的基础上构建的。如何在ubuntu上编译java程序,使其引用hadoop-2.2.0库?我应该包含的jar文件在哪里?命令是什么?是这样吗-
javac -classpath libraries wordcount.java
谢谢您。
apeeds0o1#
运行命令:“yarn classpath”查看目录列表。当我使用这个列表作为javac的-classpath选项时,我的java程序就会编译。我正在运行hortonworksv2.0,apachehadoop2.2.0。
gdrx4gfi2#
我发现如下:
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的副本)。
ehxuflar3#
你必须安装cygin,在那里你可以运行你的hadoop示例,也可以用eclipse配置你的hadoop
gopyfrb34#
linux机器最简单的解决方案是:
javac -classpath `yarn classpath` -d . WordCount.java
或:
export CLASSPATH=`yarn classpath` javac -classpath $CLASSPATH -d . WordCount.java
llycmphe5#
我在hadoop示例jars上也遇到了麻烦。许多视频/教程/博客中的信息都是基于旧版本的。当我们编译这些示例或编写我们自己的mapreduce程序时,它将使用hadoop包(即在ide中导入jar/添加对外部jar的引用-类似于在msvisualstudio中添加对.dll的引用),ide将负责为每个类正确调用javac。现在要手动编译任何类,例如wordcount.java,我们需要告诉javac我们的类所依赖的所有jar。我关注了一些过时的视频,但它们共享了一个信息,即在.bashrc中设置一个变量,引用所有与hadoop相关的jar文件,然后在javac-classpath$variable filename.java中使用这个变量。e、 g.我使用name作为$hadoop\u类路径,值如下所示(我在macosx上)/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/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/yarn/lib/*有了这个变量,我就可以成功地编译类了。”javac-classpath$hadoop\u classpath wordcount.java“
nhhxz33t6#
hadoop有一个命令“hadoop classpath”,它为您提供了必要的类路径。ie公司hadoop类路径/etc/hadoop/conf:/usr/lib/hadoop/lib/:/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。字数.java
6条答案
按热度按时间apeeds0o1#
运行命令:“yarn classpath”查看目录列表。当我使用这个列表作为javac的-classpath选项时,我的java程序就会编译。
我正在运行hortonworksv2.0,apachehadoop2.2.0。
gdrx4gfi2#
我发现如下:
这使我能够编译wordcount示例(或者在本例中是一个名为mywordcount的副本)。
ehxuflar3#
你必须安装cygin,在那里你可以运行你的hadoop示例,也可以用eclipse配置你的hadoop
gopyfrb34#
linux机器最简单的解决方案是:
或:
llycmphe5#
我在hadoop示例jars上也遇到了麻烦。许多视频/教程/博客中的信息都是基于旧版本的。
当我们编译这些示例或编写我们自己的mapreduce程序时,它将使用hadoop包(即在ide中导入jar/添加对外部jar的引用-类似于在msvisualstudio中添加对.dll的引用),ide将负责为每个类正确调用javac。
现在要手动编译任何类,例如wordcount.java,我们需要告诉javac我们的类所依赖的所有jar。我关注了一些过时的视频,但它们共享了一个信息,即在.bashrc中设置一个变量,引用所有与hadoop相关的jar文件,然后在javac-classpath$variable filename.java中使用这个变量。
e、 g.我使用name作为$hadoop\u类路径,值如下所示(我在macosx上)
/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/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/yarn/lib/*
有了这个变量,我就可以成功地编译类了。”javac-classpath$hadoop\u classpath wordcount.java“
nhhxz33t6#
hadoop有一个命令“hadoop classpath”,它为您提供了必要的类路径。ie公司
hadoop类路径/etc/hadoop/conf:/usr/lib/hadoop/lib/:/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。字数.java