溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Eclipse運(yùn)行Hadoop 2.x MapReduce程序的常見(jiàn)問(wèn)題有哪些

發(fā)布時(shí)間:2021-11-10 18:32:34 來(lái)源:億速云 閱讀:175 作者:柒染 欄目:云計(jì)算

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)使用Eclipse運(yùn)行Hadoop 2.x MapReduce程序的常見(jiàn)問(wèn)題有哪些,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1、 當(dāng)我們編寫(xiě)好MapReduce程序,點(diǎn)擊Run on Hadoop的時(shí)候,Eclipse控制臺(tái)輸出如下內(nèi)容:

使用Eclipse運(yùn)行Hadoop 2.x MapReduce程序的常見(jiàn)問(wèn)題有哪些

這個(gè)信息告訴我們沒(méi)有找到log4j.properties文件。如果沒(méi)有這個(gè)文件,程序運(yùn)行出錯(cuò)的時(shí)候,就沒(méi)有打印日志,因此我們會(huì)很難調(diào)試。

解決方法:復(fù)制$HADOOP_HOME/etc/hadoop/目錄下的log4j.properties文件到MapReduce項(xiàng)目 src文件夾下。

2、當(dāng)執(zhí)行MapReduce程序的時(shí)候,Eclipse可能會(huì)報(bào)告堆益處的錯(cuò)誤。 此時(shí),MapReduce程序執(zhí)行的out目錄已經(jīng)被創(chuàng)建,但是此時(shí)目錄為空,再重新運(yùn)行程序之前我們需要?jiǎng)h除這個(gè)輸出目錄。如下圖所示:

                使用Eclipse運(yùn)行Hadoop 2.x MapReduce程序的常見(jiàn)問(wèn)題有哪些

分析:首先我們可以輸入命令(java -client -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version | grep -i heapsize),來(lái)查看當(dāng)前JDK支持的最大堆。然后在此基礎(chǔ)上增加堆大小。

解決方案:在當(dāng)前運(yùn)行程序的運(yùn)行配置中設(shè)置VM arguments參數(shù),如下圖所示:

使用Eclipse運(yùn)行Hadoop 2.x MapReduce程序的常見(jiàn)問(wèn)題有哪些

Hadoop是使用Java語(yǔ)言開(kāi)發(fā)的,但是有一些需求和操作并不適合使用java,所以就引入了本地庫(kù)(Native Libraries)的概念,通過(guò)本地庫(kù),Hadoop可以更加高效地執(zhí)行某一些操作。

目前在Hadoop中,本地庫(kù)應(yīng)用在文件的壓縮上面:

  • zlib

  • gzip

在使用這兩種壓縮方式的時(shí)候,Hadoop默認(rèn)會(huì)從$HADOOP_HOME/lib/native/Linux-*目錄中加載本地庫(kù)。

如果加載成功,輸出為:

DEBUG util.NativeCodeLoader - Trying to load the custom-built native-hadoop library...
INFO util.NativeCodeLoader - Loaded the native-hadoop library 

如果加載失敗,輸出為:

INFO util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

在Hadoop的配置文件core-site.xml中可以設(shè)置是否使用本地庫(kù):

<property>
  <name>hadoop.native.lib</name>
  <value>true</value>
  <description>Should native hadoop libraries, if present, be used.</description>
</property>

Hadoop默認(rèn)的配置為啟用本地庫(kù)。

另外,可以在環(huán)境變量中設(shè)置使用本地庫(kù)的位置:

export JAVA_LIBRARY_PATH=/path/to/hadoop-native-libs

有的時(shí)候也會(huì)發(fā)現(xiàn)Hadoop自帶的本地庫(kù)無(wú)法使用,這種情況下就需要自己去編譯本地庫(kù)了。在$HADOOP_HOME目錄下,使用如下命令即可:

ant compile-native

編譯完成后,可以在$HADOOP_HOME/build/native目錄下找到相應(yīng)的文件,然后指定文件的路徑或者移動(dòng)編譯好的文件到默認(rèn)目錄下即可。

上述就是小編為大家分享的使用Eclipse運(yùn)行Hadoop 2.x MapReduce程序的常見(jiàn)問(wèn)題有哪些了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI