zoukankan      html  css  js  c++  java
  • 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下的数据,导致启动时失败, 所以失败的原因是版本不一致造成的。

    两种解决办法 第一种

     进入每个datanode的 dfs.data.dir 的 current目录,修改里面的文件VERSION

    #Fri Nov 23 15:00:17 CST 2012
    namespaceID=246015542
    storageID=DS-2085496284-192.168.1.244-50010-1353654017403
    cTime=0
    storageType=DATA_NODE
    layoutVersion=-32

    里面有个 namespaceID 将其修改成为报错信息中的

    namenode namespaceID = 971169702

    相同的 namespaceID  .

    然后重新启动 datanode全部都能正常启动了

      第二种:

       直接删除数据节点上的文件, 直接删除每个datanode 上面 dfs.data.dir目录下所有的文件 

    rm -rf *

    删除之后

    重新启动 也是可以正常的启动所有的datanode

    进到dfs.data.dir目录下 所有的datanode又全部重新生成了。 这样旧的数据全都不会在能找回了。其实namenode格式化了,这些数据也无用了。

    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 
    关闭防火墙 机器重启后,防火墙还会开启。 

    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. 

    解决方法: 
    关闭防火墙: 
    禁用selinux: 
    编辑 /etc/selinux/config文件,设置“SELINUX=disabled” 

    4、安全模式导致的错误 
    org.apache.hadoop.dfs.SafeModeException: Cannot delete ..., Name node is in safe mode 
    在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。 

  • 相关阅读:
    64位操作系统Visual Studio连接本机oracle的问题
    解决Oracle启动失败
    通过应用程序域AppDomain加载和卸载程序集
    C#应用程序实现单例模式
    不实现 INotifyPropertyChanged接口也能实现数据绑定
    WPF弹出“选择文件夹”对话框
    Linux常用命令
    markedown基本语法
    git使用
    用户打开浏览器,输入buidu.com页面展示百度首页。整个过程发生了什么?
  • 原文地址:https://www.cnblogs.com/xd502djj/p/4422728.html
Copyright © 2011-2022 走看看