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 :: CST
namespaceID=
storageID=DS--10.4.124.236--

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

Hadoop错误日志的更多相关文章

  1. Hive分析hadoop进程日志

    想把hadoop的进程日志导入hive表进行分析,遂做了以下的尝试. 关于hadoop进程日志的解析 使用正则表达式获取四个字段,一个是日期时间,一个是日志级别,一个是类,最后一个是详细信息, 然后在 ...

  2. 深入剖析HADOOP程序日志

    深入剖析HADOOP程序日志 前提 本文来自于 博客园 逖靖寒的世界 http://gpcuster.cnblogs.com 了解log4j的使用. 正文 本文来自于 博客园 逖靖寒的世界 http: ...

  3. hadoop 错误处理机制

    hadoop 错误处理机制 1.硬件故障 硬件故障是指jobtracker故障或TaskTracker 故障 jobtracker是单点,若发生故障,目前hadoop 还无法处理,唯有选择最牢靠的硬件 ...

  4. 【夯实PHP基础】nginx php-fpm 输出php错误日志

    本文地址 原文地址 分享提纲: 1.概述 2.解决办法(解决nginx下php-fpm不记录php错误日志) 1. 概述 nginx是一个web服务器,因此nginx的access日志只有对访问页面的 ...

  5. nginx php-fpm 输出php错误日志

    nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进程来处理, ...

  6. SQL Server 错误日志过滤(ERRORLOG)

    一.背景 有一天我发现SQL Server服务器的错误日志中包括非常多关于sa用户的登陆错误信息:“Login failed for user 'sa'. 原因: 评估密码时出错.[客户端: XX.X ...

  7. MySQL错误日志总结

    MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息.错误日志的命名通常为hostname.err.其中,hostname表示服务器主机名. ...

  8. MS SQL 监控错误日志的告警信息

    SQL Server的错误消息(Error Message)按照消息的严重级别一共划分25个等级,级别越高,表示严重性也越高.但是如果你统计sys.messages,你会发现,实际上只有16(SQL ...

  9. [AlwaysOn Availability Groups]SQL Server错误日志(AG)

    SQL Server错误日志(AG) SQL Server错误日志会记录影响AG的时间,比如: 1.和Windows故障转移集群交互 2.可用副本的状态 3.可用数据的状态 4.AG endpoint ...

随机推荐

  1. inux man命令的使用方法(转)

    原文:http://www.cnblogs.com/hnrainll/archive/2011/09/06/2168604.html Linux的man手册共有以下几个章节: 代號 代表內容 1 使用 ...

  2. git vim 编辑器基本操作

      用 git 命令行提交文件时,默认使用 vim 编辑器,基本操作: 按 a, i 或 o 进入编辑模式 按 ESC 进入操作模式 在操作模式下,:wq 为写入退出,:q! 不保存退出

  3. servlet输出请求头

    1.参考 Enumeration headerNames = req.getHeaderNames(); while(headerNames.hasMoreElements()) { String h ...

  4. T-SQL中的十大注意事项

    转载自:http://www.cnblogs.com/CareySon/archive/2012/10/11/2719598.html 1.在生产环境中不要出现Select * 这一点我想大家已经是比 ...

  5. [javascript]编码&i字符串格式化&nput历史记录&清空模态框

    js中编码问题 https://www.haorooms.com/post/js_escape_encodeURIComponent 我在前端js添加时候创建dom时候,有汉字,发现是乱码就研究了下 ...

  6. vue-router中参数传递 && 编程式导航 && 坑 && beforeRouteEnter

    第一部分: vue-router参数传递 通过router-link我们可以向路由到的组件传递参数,这在我们实际使用中时非常重要的. 路由: { path:"/DetailPage" ...

  7. spfa 判断负环 (转载)

    当然,对于Spfa判负环,实际上还有优化:就是把判断单个点的入队次数大于n改为:如果总的点入队次数大于所有点两倍 时有负环,或者单个点的入队次数大于sqrt(点数)有负环.这样时间复杂度就降了很多了. ...

  8. JS的二维数组

    今天,记录一下JS的二位数组,并附上例题. 一.二维数组的本质:数组中的元素又是数组. 其实,我们都见过这样的二维数组,只不过没在意罢了,例如: var arr = [[1,2,4,6],[2,4,7 ...

  9. Razor中的@:和语法

    用Razor实现流畅编程 Razor尽量减少编写一个视图模板需要敲入的字符数,实现快速流畅的编程工作流.与大部分模板的语法不同,你不必在HTML中为了明确地标记出服务模块 的开始和结束而中断编程.Ra ...

  10. 【weka】分类,cross-validation,数据

    一.分类classifier 如何利用weka里的类对数据集进行分类,要对数据集进行分类,第一步要指定数据集中哪一列做为类别,如果这一步忘记了(事实上经常会忘记)会出现“Class index is ...