日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hadoop常见错误即解决方法

發布時間:2023/12/31 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop常见错误即解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/yonghutwo/article/details/9206059

如果大家在安裝的時候遇到問題,或者按步驟安裝完后卻不能運行Hadoop,那么建議仔細查看日志信息,Hadoop記錄了詳盡的日志信息,日志文件保存在logs文件夾內。

無論是啟動,還是以后會經常用到的MapReduce中的每一個job,以及HDFS等相關信息,Hadoop均存有日志文件以供分析。


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代碼
  • 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代碼
  • 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代碼
  • 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代碼
  • 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

    按照日志修改了目錄的訪問權限,問題解決。


    8.hadoopdatanode啟動不起


    例如:

    NameNode和DataNode的namespaceID不一致,這個錯誤是很多人在安裝時會遇到的,日志信息為:

    java.io.IOException: Incompatible namespaceIDs in/root/tmp/dfs/data:

    NameNode namespaceID = 1307672299; DataNode namespaceID =389959598

    若HDFS一直沒有啟動,讀者可以查詢日志,并通過日志進行分析,以上提示信息顯示了NameNode和DataNode的namespaceID不一致。

    這個問題一般是由于兩次或兩次以上的格式化NameNode造成的,有兩種方法可以解決,第一種方法是刪除DataNode的所有資料(及將集群中每個datanode的/hdfs/data/current中的VERSION刪掉,然后執行hadoopnamenode-format重啟集群,錯誤消失。<推薦>);第二種方法是修改每個DataNode的namespaceID(位于/hdfs/data/current/VERSION文件中)<優先>或修改NameNode的namespaceID(位于/hdfs/name/current/VERSION文件中),使其一致。

    下面這兩種方法在實際應用中也可能會用到。

    1)重啟壞掉的DataNode或JobTracker。當Hadoop集群的某單個節點出現問題時,一般不必重啟整個系統,只須重啟這個節點,它會自動連入整個集群。

    在壞死的節點上輸入如下命令即可:

    bin/Hadoop-daemon.sh start DataNode

    bin/Hadoop-daemon.sh start jobtracker

    2) 動態加入DataNode或TaskTracker。這個命令允許用戶動態將某個節點加入集群中。

    bin/Hadoop-daemon.sh --config ./conf startDataNode

    bin/Hadoop-daemon.sh --config ./conf start tasktracker

    9.強行關機或hadoop意外中斷會出現這種錯誤:

    not start task tracker because java.io.IOException: Failed to set permissions o
    f path: \app\hadoop\tmp\mapred\local\ttprivate to 0700

    source name ugi already exists

    重新格式化也不行,總是提示 Re-format filesystem in

    刪除hadoop節點的data臨時目錄,就是core-site.xml的hadoop.tmp.dir配置的那個系統文件目錄, 注意,不是hdfs的那個目錄(hls -ls 看到的那個目錄),必須是操作系統直接看到的那個臨時目錄。然后重新格式化就可以解決問題。


    10. 錯誤:Format aborted in /usr/local/hadoop/hdfsconf/name,啟動后發現發現http://das0:5007無法顯示。

    將/data0/hadoop-name文件夾整個刪除。然后再格,成功!!!


    在對namenode格式化之前,要確保dfs.name.dir參數指定的目錄不存在。Hadoop這樣做的目的是防止錯誤地將已存在的集群格式化了


    轉載于:https://blog.51cto.com/kisuntech/1304629

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的hadoop常见错误即解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。