hadoop常見錯誤及處理方法

jiaaq2008發表於2014-04-10
1、hadoop-root-datanode-master.log 中有如下錯誤: 
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in 
導致datanode啟動不了。 

原因:每次namenode format會重新建立一個namenodeId,而dfs.data.dir引數配置的目錄中包含的是上次format建立的id,和dfs.name.dir引數配置的目錄中的id不一致。namenode format清空了namenode下的資料,但是沒有清空datanode下的資料,導致啟動時失敗,所要做的就是每次fotmat前,清空dfs.data.dir引數配置的目錄. 
格式化hdfs的命令 
Shell程式碼  收藏程式碼
  1. hadoop namenode -format  


2、如果datanode連線不上namenode,導致datanode無法啟動。 
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Call to ... failed on local exception: java.net.NoRouteToHostException: No route to host 
關閉防火牆
Shell程式碼  收藏程式碼
  1. service iptables stop  

機器重啟後,防火牆還會開啟。 


3、從本地往hdfs檔案系統上傳檔案,出現如下錯誤: 
INFO hdfs.DFSClient: Exception in createBlockOutputStream java.io.IOException: Bad connect ack with firstBadLink 

INFO hdfs.DFSClient: Abandoning block blk_-1300529705803292651_37023 

WARN hdfs.DFSClient: DataStreamer Exception: java.io.IOException: Unable to create new block. 

解決方法: 
關閉防火牆: 
Shell程式碼  收藏程式碼
  1. service iptables stop  

禁用selinux: 
編輯 /etc/selinux/config檔案,設定“SELINUX=disabled” 

4、安全模式導致的錯誤 
org.apache.hadoop.dfs.SafeModeException: Cannot delete ..., Name node is in safe mode 
在分散式檔案系統啟動的時候,開始的時候會有安全模式,當分散式檔案系統處於安全模式的情況下,檔案系統中的內容不允許修改也不允許刪除,直到安全模式結束。安全模式主要是為了系統啟動的時候檢查各個DataNode上資料塊的有效性,同時根據策略必要的複製或者刪除部分資料塊。執行期通過命令也可以進入安全模式。在實踐過程中,系統啟動的時候去修改和刪除檔案也會有安全模式不允許修改的出錯提示,只需要等待一會兒即可。 

Java程式碼  收藏程式碼
  1. hadoop dfsadmin -safemode leave  
  關閉安全模式 

5、以本地模式執行hadoop時,拋異常 
ERROR security.UserGroupInformation: PriviledgedActionException as:hadoop cause:java.net.UnknownHostException: hadoop: hadoop: Name or service not known 
Exception in thread "main" java.net.UnknownHostException: hadoop: hadoop: Name or service not known 

把/etc/hostname檔案中的主機名加入到/etc/hosts檔案中,問題解決。 

6、格式化hdfs檔案系統時,出錯: 
Format aborted in /home/hadoop/dfs/name 

/home/hadoop/dfs/name 是 dfs.name.dir 配置的本地路徑,把這個目錄刪除, 
再格式化就可以了。 

7、datanode無法啟動,datanode的日誌中有error: 
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: All directories in dfs.data.dir are invalid 

發現日誌前一行有warn:WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permissi    on for /home/hadoop/dfs/data, expected: rwxr-xr-x, while actual: rwxrwxr-x 

按照日誌修改了目錄的訪問許可權,問題解決。 

相關文章