1. 程式人生 > >Caused by: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.security.AccessControlException:

Caused by: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.security.AccessControlException:

Caused by: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.security.AccessControlException: Permission denied: user=lenovo, access=WRITE, inode="":suh:supergroup:rwxr-xr-x

解決方案:

方案一:

到伺服器上修改hadoop的配置檔案:conf/hdfs-core.xml, 找到 dfs.permissions 的配置項 , 將value值改為 false:
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>
If "true", enable permission checking in HDFS.
If "false", permission checking is turned off,
but all other behavior is unchanged.
Switching from one parameter value to the other does not change the mode,
owner or group of files or directories.
</description>
</property>
ps:修改完需要重啟下hadoop的程序才能生效,生產環境出於安全考慮一般是不建議這麼操作的。


方案二:
將對應的目錄設定最大許可權777
hadoop fs -chmod 777 /
ps:相對便捷的一個方案

方案三:
在win7系統的環境變數或java JVM變數裡面新增 HADOOP_USER_NAME,值為執行HADOOP上的Linux的使用者名稱。在Eclipse裡面執行,修改完環境變數後,需要重啟一下eclipse,不然可能不會生效。 
ps:推薦使用的方案

方案四:

將當前系統的帳號名稱修改為執行HADOOP上的Linux的使用者名稱。