Hadoop問題解決-null\bin\winutils.exe和NativeIO$Windows.access0(Ljava/lang/String;I)Z問題

1.環境的的基本介紹

  • Hadoop版本: hadoop-2.7.2
  • 系統版本:Windows

2.問題描述

在Windows下操作Hadoop的MapReuce操作,發現提示如下錯誤信息:

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

3.問題分析與解決

結合異常不難發現HADOOP_HOME_DIR值爲null,基本上可以判斷是 HADOOP_HOME環境變量的問題,所有我們要檢查HADOOP_HOME環境變量的設置,檢查要注意的是,我們設置的環境變量HADOOP_HOME要在系統變量中設置,等設置完成後,發現還未生效。所以我們要重啓計算機。

圖1.環境變量的設置

 但是呢,對於我而言,覺得重啓計算機太過於繁瑣,所以我們可以採用在代碼中臨時設置的方式,也可以產生相同的效果。代碼如下:

System.setProperty("hadoop.home.dir", "C:\\hadoop-2.7.2");//路徑按照自己的實際情況設置

 

添加如下代碼後HADOOP_HOME這塊就沒有問題了,但是依舊提示有問題,最後查閱資料後發現,是我缺少了winutils.exe文件,所以我下載了相應版本的winutils.exe文件,具體的下載URL見後文,一定要版本對應。

4.新問題出現了

解決的上面的問題之後,發現又出現了新的錯誤,錯誤信息如下: 

org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

出現這個的原因是: C:\Windows\System32下缺少hadoop.dll,把這個文件拷貝到C:\Windows\System32下面即可。問題解決。

5.寫在最後

本文是題主遇到該問題時,在網上收集了各種資料後,解決了該問題,覺得收穫頗多。故再次將其展示與博客,希望能和大家共勉,一起去貢獻出更精彩的博客!

文章引用列表:

包下載地址:

winutils.exe和hadoop.dll下載鏈接:https://pan.baidu.com/s/1O-VWzO-2IZEH90-qYc3Yxg 提取碼:tclv 

(在bin目錄下)


題主只是一個入門的小學生,希望大家多多指教!如果該帖子確實能解決您的問題,望多多留言,謝謝!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章