使用Eclipse運行Hadoop 2.x MapReduce程式常見問題

來源:互聯網
上載者:User

標籤:des   blog   http   io   os   ar   使用   java   for   

1、 當我們編寫好MapReduce程式,點擊Run on Hadoop的時候,Eclipse控制台輸出如下內容:

這個資訊告訴我們沒有找到log4j.properties檔案。如果沒有這個檔案,程式運行出錯的時候,就沒有列印日誌,因此我們會很難調試。

解決方案:複製$HADOOP_HOME/etc/hadoop/目錄下的log4j.properties檔案到MapReduce項目 src檔案夾下。

2、當執行MapReduce程式的時候,Eclipse可能會報告堆益處的錯誤。 此時,MapReduce程式執行的out目錄已經被建立,但是此時目錄為空白,再重新運行程式之前我們需要刪除這個輸出目錄。如所示:

                                                           

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

解決方案:在當前運行程式的回合組態中設定VM arguments參數,如所示:

 

3.Hadoop的本地庫(Native Libraries)介紹

Hadoop是使用Java語言開發的,但是有一些需求和操作並不適合使用java,所以就引入了本地庫(Native Libraries)的概念,通過本地庫,Hadoop可以更加高效地執行某一些操作。

目前在Hadoop中,本地庫應用在檔案的壓縮上面:

  • zlib
  • gzip

在使用這兩種壓縮方式的時候,Hadoop預設會從$HADOOP_HOME/lib/native/Linux-*目錄中載入本地庫。

如果載入成功,輸出為:

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中可以設定是否使用本地庫:

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

Hadoop預設的配置為啟用本地庫。

另外,可以在環境變數中設定使用本地庫的位置:

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

有的時候也會發現Hadoop內建的本地庫無法使用,這種情況下就需要自己去編譯本地庫了。在$HADOOP_HOME目錄下,使用如下命令即可:

ant compile-native

編譯完成後,可以在$HADOOP_HOME/build/native目錄下找到相應的檔案,然後指定檔案的路徑或者移動編譯好的檔案到預設目錄下即可。

 

使用Eclipse運行Hadoop 2.x MapReduce程式常見問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.