zoukankan      html  css  js  c++  java
  • Hadoop错误日志

    1.错误日志:
    Directory /tmp/hadoop-root/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
    错误原因:
    在Linux下Hadoop等的各种数据默认保存在 /tmp目录下。当重启系统后 /tmp目录中的数据信息被清除,导致Hadoop启动失败。确定目录 /tmp/hadoop-root/dfs/name是否存在
    解决方案:
    使用命令bin/hadoop namenode -format 格式化NN,即可正常启动。

    2.错误日志:
    Incompatible namespaceIDS in … :namenode namespaceID = … ,datanode namespaceID=…  
    错误原因:
    格式化NameNode后会重新创建一个新的namespaceID,以至于和DataNode上原有的不一致。  
    解决方案:
    1) 在 /tmp/hadoop-root/dfs/data 目录下残留的数据删掉,重新建(很麻烦,但看你了)
    2) 狠方法:bin/stop-all.sh hadoop fs namenode -format bin/start-all.sh
    3) 登上DataNode,把位于{dfs.data.dir}/current/VERSION中的namespaceID改为和NameNode相同即可(推荐)

    [hadoop@dtydb6 current]$ cat VERSION
    #Fri Dec 14 09:37:22 CST 2012
    namespaceID=525507667
    storageID=DS-120876865-10.4.124.236-50010-1354772633249

    3.错误日志:
    使用CDH5,进入hive 想创建表,报告以上的异常”Name node is in safe mode”,使用命令”hadoop dfsadmin -safemode leave ”让其离开安全模式,仍然不能解决。


    解决方案:
    使用CDH5发行版,在一般命令之前都要添加“sudo –u hdfs”(ROOT级命令)

    # sudo –u hdfs hadoop dfsadmin –safemode leave

    4.关于 Warning: $HADOOP_HOME is deprecated.
    hadoop 1.0.0 版本,安装完之后敲入hadoop 命令时, 老是提示这个警告:Warning: $HADOOP_HOME is deprecated.
    经查 hadoop-1.0.0/bin/hadoop 脚本和“hadoop-config.sh”脚 本,发现脚本中对HADOOP_HOME的环境变量设置做了判断,笔者的环境根本不需要设置HADOOP_HOME环境变量。
    解决方案:
    1) 编辑“/etc/profile”文件,去掉 HADOOP_HOME 的变量设定,重新输入hadoop fs 命令,警告消失。
    2) 编辑“/etc/profile”文件,添加一个环境变量,之后警告消失:export HADOOP_HOME_WARN_SUPPRESS=1
    3) 编辑“hadoop-config.sh”文件,把下面的“if - fi”功能注释掉。

     

    5.解决“no datanode to stop ”问题
    原因:每次 namenode format 会重新创建一个 namenodeId,而 /tmp/dfs/data 下包含了上次 format 下的 id,namenode format 清空了 namenode 下的数据,但是没有清空 datanode 下的数据。导致启动时失败,所要做的就是每次 fotmat 前,清空 /tmp 一下的所有目录。
    解决方案:
    修改每个 Slave 的 namespaceID 使其与Master即NN的 namespaceID 一致。

     

    6.Slave 服务器中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
    解决方案:
    关闭防火墙:service iptables stop 

    7.从本地往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 lock.
    解决方案:
    1) 关闭防火墙:service iptables stop
    2) 禁用selinux:编辑“/etc/selinux/config”文件,设置“SELINUX=disabled”

    8.hadoop集群启动start-all.sh的时候,slave总是无法启动datanode,并会报错:… could only be replicated to 0 nodes, instead of 1 … 就是有节点的标识可能重复。也可能有其他原因,以下解决方法请依次尝试。
    解决方法:
    1).删除所有节点dfs.data.dir和dfs.tmp.dir目录(默认为tmp/dfs/data和tmp/dfs/tmp)下的数据文件;然后重新hadoop namenode -format 格式化节点;然后启动。
    2).如果是端口访问的问题,你应该确保所用的端口都打开,比如hdfs://machine1:9000/、50030、50070之类的。执行#iptables -I INPUT -p tcp –dport 9000 -j ACCEPT 命令。如果还有报错:hdfs.DFSClient: Exception in createBlockOutputStream java.net.ConnectException: Connection refused;应该是datanode上的端口不能访问,到datanode上修改iptables:#iptables -I INPUT -s machine1 -p tcp -j ACCEPT
    3).还有可能是防火墙的限制集群间的互相通信。尝试关闭防火墙。/etc/init.d/iptables stop
    4).最后还有可能磁盘空间不够了,请查看 df -al

  • 相关阅读:
    美化单选按钮
    url的处理
    时间戳处理
    模板渲染引擎手册
    Web前端工具——Live Reload – Chrome扩展
    属性(Properties)和字段在C#中的关系
    MVC3中的Model
    使用System.Web.Mvc.Ajax
    javascript之DOM操作
    Javascript之BOM(window对象)
  • 原文地址:https://www.cnblogs.com/skyl/p/4855047.html
Copyright © 2011-2022 走看看