1. 程式人生 > >Windows Eclipse中進行WordCount報錯org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/Strin

Windows Eclipse中進行WordCount報錯org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/Strin

報錯:Exception inthread "main" java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

解決: C:\Windows\System32下缺少hadoop.dll(hadoop-3.0.0\bin目錄下)把這個檔案拷貝到C:\Windows\System32下面,重啟電腦。

 

繼續報錯:

Exception in thread "main"java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

   atorg.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)

   atorg.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:606)

解決:Windows的唯一方法用於檢查當前程序的請求,在給定的路徑的訪問許可權,所以我們先給以能進行訪問,我們自己先修改原始碼,return true 時允許訪問。我們下載對應hadoop原始碼,hadoop-3.0.0-src.tar 解壓,hadoop-3.0.0-src\hadoop-3.0.0-src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio

NativeIO.java複製到對應的Eclipseproject,然後修改608行為return true如圖所示:



報錯:Permission denied: user=administrator, access=WRITE, inode="/":navy:supergroup:drwxr-xr-x
很顯然是是 使用者Administator在hadoop上執行寫操作時被許可權系統拒絕.
修改 hadoop fs -chmod 777 / 即可