|
1、hadoop-root-datanode-master.log 中有如下錯誤:
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Java.io.IOException: Incompatible namespaceIDs in
導(dǎo)致datanode啟動不了。
原因:每次namenode format會重新創(chuàng)建一個namenodeId,而dfs.data.dir參數(shù)配置的目錄中包含的是上次format創(chuàng)建的id,和dfs.name.dir參數(shù)配置的目錄中的id不一致。namenode format清空了namenode下的數(shù)據(jù),但是沒有清空datanode下的數(shù)據(jù),導(dǎo)致啟動時失敗,所要做的就是每次fotmat前,清空dfs.data.dir參數(shù)配置的目錄.
格式化hdfs的命令
復(fù)制代碼 代碼如下:
hadoop namenode -format
2、如果datanode連接不上namenode,導(dǎo)致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
關(guān)閉防火墻
復(fù)制代碼 代碼如下:
service iptables stop
機器重啟后,防火墻還會開啟。
3、從本地往hdfs文件系統(tǒng)上傳文件,出現(xiàn)如下錯誤:
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.
解決方法:
關(guān)閉防火墻:
復(fù)制代碼 代碼如下:
service iptables stop
禁用selinux:
編輯 /etc/selinux/config文件,設(shè)置“SELINUX=disabled”
4、安全模式導(dǎo)致的錯誤
org.apache.hadoop.dfs.SafeModeException: Cannot delete ..., Name node is in safe mode
在分布式文件系統(tǒng)啟動的時候,開始的時候會有安全模式,當(dāng)分布式文件系統(tǒng)處于安全模式的情況下,文件系統(tǒng)中的內(nèi)容不允許修改也不允許刪除,直到安全模式結(jié)束。安全模式主要是為了系統(tǒng)啟動的時候檢查各個DataNode上數(shù)據(jù)塊的有效性,同時根據(jù)策略必要的復(fù)制或者刪除部分數(shù)據(jù)塊。運行期通過命令也可以進入安全模式。在實踐過程中,系統(tǒng)啟動的時候去修改和刪除文件也會有安全模式不允許修改的出錯提示,只需要等待一會兒即可。
復(fù)制代碼 代碼如下:
hadoop dfsadmin -safemode leave
關(guān)閉安全模式
php技術(shù):hadoop常見錯誤以及處理方法詳解,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。