###一、Shell$ExitCodeException 現象:運行hadoop job時出現以下異常:java
Exception from container-launch: org.apache.hadoop.util.Shell$ExitCode Exception: Container exited with a non-zero exit code 1
緣由及解決辦法:緣由未知。重啓可恢復正常 ###二、Safe mode 現象:分配map reduce任務時產生:node
org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode
說明Hadoop的NameNode處在安全模式下。apache
經查閱: 安全模式主要是爲了系統啓動的時候檢查各個DataNode上數據塊的有效性,同時根據策略必要的複製或者刪除部分數據塊。安全
在分佈式文件系統啓動的時候,開始的時候會有安全模式,當分佈式文件系統處於安全模式的狀況下,文件系統中的內容不容許修改也不容許刪除,直到安全模式結束。網絡
用戶能夠經過dfsadmin -safemode value 來操做安全模式,參數value的說明以下: enter - 進入安全模式 leave - 強制NameNode離開安全模式 get - 返回安全模式是否開啓的信息 wait - 等待,一直到安全模式結束。socket
解決方案: hadoop dfsadmin -safemode leave (離開安全模式)分佈式
###三、超時錯誤 SocketTimeoutException 現象:oop
java.net.SocketTimeoutException: 66000 millis timeout while waiting for channel to be ready for read. c
產生緣由: 1.master和slave時鐘不一樣步 因爲hadoop集羣中的心跳和反饋機制,因此在配置的時候咱們會進行時鐘同步的操做,當某種緣由形成cmos斷電後,時鐘會錯亂,這個時間會產生此異常。 解決方案: 手動設置timezone 同步時間 參考命令 ntpdate date等命令.net
2. 因爲網絡卡頓引發 解決方案:設置hadoop集羣的修改超時設置
在配置文件中,加入超時設置日誌
<property> <name>dfs.datanode.socket.write.timeout</name> <value>3000000</value> </property> <property> <name>dfs.socket.timeout</name> <value>3000000</value> </property>
###四、Permission denied: user=li, access=WRITE, inode="":zkpk:supergroup:rwxr-xr-x 緣由爲用戶權限不足,不能訪寫HDFS中的文件。 解決方案1: 關閉hadoop權限,在hdfs-site.xml文件中添加
<property> <name>dfs.permissions</name> <value>false</value> </property>
解決方案2: 設置權限
###五、could only be replicated to 0 nodes, instead of 1解決辦法
現象:
hadoop fs -put /home/hadoop/file/* input java.io.IOException: File /user/hadoop/input/file1.txt could only be replicated to 0 nodes, instead of 1
產生緣由: 一、系統或hdfs是否有足夠空間(本人就是由於硬盤空間不足致使異常發生) 二、datanode數是否正常 三、是否在safemode 四、防火牆是否關閉 五、關閉hadoop、格式化、重啓hadoop
若是put時出現java.io.IOException: Not a file: hdfs://localhost:9000/user/icymary/input/test-in 解決辦法是hadoop dfs -rmr input hadoop dfs -put /home/test-in input 緣由是,當執行了屢次put以後,就會在分佈式文件系統中生成子目錄,刪除從新put便可。 若是在 hadoop jar hadoop-0.16.0-examples.jar wordcount input output該過程當中出現"can only be replicated to node 0, instead of 1",解決辦法是,給磁盤釋放更多的空間 若是 bin/hadoop jar hadoop-0.16.0-examples.jar wordcount input output過程當中 INFO mapred.JobClient: map 0% reduce 0%
且一直卡住,在log日誌中也沒有出現異樣,那麼解決辦法是,把/etc/hosts裏面多餘的機器名刪掉,便可。