HDFS異常集合 - - 持續更新

[b][size=x-large][color=red]AccessControlException[/color][/size][/b]
eclipse 運行一些基本的對HDFS操作代碼報沒有權限的異常:
 org.apache.hadoop.security.AccessControlException: Permission denied: user=jhm, access=WRITE, inode="kfs":kfs:supergroup:rwxr-xr-x


解決方法:

一、修改配置文件
到服務器上修改hadoop的配置文件:conf/hdfs-site.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>



二、修改HDFS文件夾權限

因爲Eclipse使用hadoop插件提交作業時,會默認以用戶名身份去將作業寫入hdfs文件系統中,對應的也就是 HDFS 上的/user/xxx , 由於 xxx用戶對hadoop目錄並沒有寫入權限,所以導致異常的發生。解決方法爲:
放開 hadoop 目錄的權限 , 命令如下:
./hadoop dfs -chmod -R 777 /user/xxx/



[b][size=x-large][color=red]SafeModeException[/color][/size][/b]
操作HDFS的時候或許會出現

org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create file/user/kfs/aa.html. Name node is in safe mode.


解決辦法:

$ bin/hadoop dfsadmin -safemode leave關閉safe mode
用戶可以通過dfsadmin -safemode value 來操作安全模式,參數value的說明如下:
enter - 進入安全模式
leave - 強制NameNode離開安全模式
get - 返回安全模式是否開啓的信息
wait - 等待,一直到安全模式結束。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章