簡體   English   中英

如何在Cloudera hadoop中使用外部jar?

[英]how to use external jars in Cloudera hadoop?

我在集群上安裝了cloudera hadoop版本4。 它隨附於Google protobuffer jar版本2.4。 在我的應用程序代碼中,我使用由protobuffer 2.5版編譯的protobuffer類。

這會在運行時導致無法解決的編譯問題。 有沒有一種方法可以使用外部jar來運行map reduce作業,或者在cloudera升級其服務之前我一直處於困境?

謝謝。

是的,您可以使用外部jar運行MR作業。

像下面的示例一樣,提交作業時,請確保將所有依賴項都添加到HADOOP_CLASSPATH-libjars中:

您可以使用以下命令從當前目錄和lib目錄添加所有jar依賴項:

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:`echo *.jar`:`echo lib/*.jar | sed 's/ /:/g'`

請記住,通過hadoop jar開始作業時,還需要通過使用-libjars來傳遞任何依賴項的-libjars 我喜歡使用:

hadoop jar <jar> <class> -libjars `echo ./lib/*.jar | sed 's/ /,/g'` [args...]

注意: sed命令需要使用不同的定界符; HADOOP_CLASSPATH:分離, -libjars,分離。

編輯:如果您需要首先解釋類路徑以確保您的jar(而不是預包裝的jar)是被使用的,則可以設置以下內容:

export HADOOP_USER_CLASSPATH_FIRST=true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM