hadoop常見異常

###一、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裏面多餘的機器名刪掉,便可。

相關文章
相關標籤/搜索