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 :: 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错误日志的更多相关文章
- Hive分析hadoop进程日志
想把hadoop的进程日志导入hive表进行分析,遂做了以下的尝试. 关于hadoop进程日志的解析 使用正则表达式获取四个字段,一个是日期时间,一个是日志级别,一个是类,最后一个是详细信息, 然后在 ...
- 深入剖析HADOOP程序日志
深入剖析HADOOP程序日志 前提 本文来自于 博客园 逖靖寒的世界 http://gpcuster.cnblogs.com 了解log4j的使用. 正文 本文来自于 博客园 逖靖寒的世界 http: ...
- hadoop 错误处理机制
hadoop 错误处理机制 1.硬件故障 硬件故障是指jobtracker故障或TaskTracker 故障 jobtracker是单点,若发生故障,目前hadoop 还无法处理,唯有选择最牢靠的硬件 ...
- 【夯实PHP基础】nginx php-fpm 输出php错误日志
本文地址 原文地址 分享提纲: 1.概述 2.解决办法(解决nginx下php-fpm不记录php错误日志) 1. 概述 nginx是一个web服务器,因此nginx的access日志只有对访问页面的 ...
- nginx php-fpm 输出php错误日志
nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进程来处理, ...
- SQL Server 错误日志过滤(ERRORLOG)
一.背景 有一天我发现SQL Server服务器的错误日志中包括非常多关于sa用户的登陆错误信息:“Login failed for user 'sa'. 原因: 评估密码时出错.[客户端: XX.X ...
- MySQL错误日志总结
MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息.错误日志的命名通常为hostname.err.其中,hostname表示服务器主机名. ...
- MS SQL 监控错误日志的告警信息
SQL Server的错误消息(Error Message)按照消息的严重级别一共划分25个等级,级别越高,表示严重性也越高.但是如果你统计sys.messages,你会发现,实际上只有16(SQL ...
- [AlwaysOn Availability Groups]SQL Server错误日志(AG)
SQL Server错误日志(AG) SQL Server错误日志会记录影响AG的时间,比如: 1.和Windows故障转移集群交互 2.可用副本的状态 3.可用数据的状态 4.AG endpoint ...
随机推荐
- javaScript高级教程(九) ------javascript对象字面量--------困扰已久的问题
在编程语言中,字面量是一种表示值的记法.例如,"Hello, World!" 在许多语言中都表示一个字符串字面量(string literal ),JavaScript也不例外. ...
- JavaScript如何实现拖放功能
1.在学习ExtJs时,对其拖放功能感到很陌生,然后找了个拖放功能实现. 转载地址 2.拖拽的基本原理就是根据鼠标的移动来移动被拖拽的元素.鼠标的移动也就是x.y坐标的变化:元素的移动就是style. ...
- mysql 使用存储引擎
三 使用存储引擎 方法1:建表时指定引擎 指定innodb,不写默认也是innodb use 数据库先 create table innodb_t1(id int,name char)engine=i ...
- 005-spring boot 2.0.4-jdbc升级
一.概述 Springboot2默认数据库连接池选择了HikariCP为何选择HikariCP理由一.代码量理由二.口碑理由三.速度理由四.稳定性理由五.可靠性HikariCP为什么这么快优化并精简字 ...
- 系列解读Dropout
本文主要介绍Dropout及延伸下来的一些方法,以便更深入的理解. 想要提高CNN的表达或分类能力,最直接的方法就是采用更深的网络和更多的神经元,即deeper and wider.但是,复杂的网络也 ...
- 7.MQTT网页客户端连接MQTT服务器的问题WebSocket connection to 'ws://XXX:1883/' failed: Connection closed before receiving a handshake response
问题描述:MQTT.js提供了连接MQTT的一套javascipt的方法,可供前端连接到MQTT服务器,也可以作为脚本测试.以脚本形式,用nodejs运行,是没有问题的,能够正常连接并且发送报文.但是 ...
- spring的bean容器加载
1.在单独使用的时候可以通过ClassPathXmlApplicationContext(“配置文件.xml”);来启动容器. 2.在MVC下是通过启动servlet容器,初始化DispatcherS ...
- $scope.$apply
对于一个在前端属于纯新手的我来说,Javascript都还是一知半解,要想直接上手angular JS,遇到的阻力还真是不少.不过我相信,只要下功夫,即使是反人类的设计也不是什么大的问题. Okay, ...
- LeetCode--Two_Sum
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- Django中的admin组件分析
admin的使用介绍 django-admin的使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 setting ...