簡體   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