datanode启动失败

当我动态添加一个hadoop从节点的之后,出现了一个问题:

[[email protected] current]# hadoop-daemon.sh start datanode

starting datanode, logging to /usr/local/hadoop1.1/libexec/../logs/hadoop-root-datanode-hadoop.out

[[email protected] ~]# jps

jps命令发现没有datanode启动,所以去它提示的路径下查看了hadoop-root-datanode-hadoop.out文件,可以是空白的。

后来在该路径下发现了/usr/local/hadoop1.1/logs/hadoop-root-datanode-hadoop.log文件

查看日志文件

[[email protected] current]# vim /usr/local/hadoop1.1/logs/hadoop-root-datanode-hadoop.log

STARTUP_MSG:   version = 1.1.2

STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.1 -r 1440782; compiled by ‘hortonfo‘ on Thu Jan 31 02:03:24 UTC 2013

************************************************************/

2014-10-31 19:24:28,543 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties

2014-10-31 19:24:28,565 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered.

2014-10-31 19:24:28,566 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).

2014-10-31 19:24:28,566 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started

2014-10-31 19:24:28,728 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source ugi registered.

2014-10-31 19:24:29,221 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /usr/local/hadoop/tmp/dfs/data: namenode namespaceID = 942590743;
datanode namespaceID = 463031076

at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:232)

at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:147)

at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:399)

at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:309)

at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1651)

at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1590)

at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1608)

at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1734)

at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1751)

2014-10-31 19:24:29,229 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG: Shutting down DataNode at hadoop/192.168.0.100

************************************************************/

读日志文件:

先看到ERROT信息中Incompatible这个单词,意思是“不相容的”。所以我们可以看出是datanode的namespaceID出错了。

所以最后shutDown了。

解决思路:

(1)先去hadoop路径下的配置文件hdfs-site.xml,看看:

[[email protected] current]# vim /usr/local/hadoop1.1/conf/hdfs-site.xml

.....................................................................................................................................

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

<property>

<name>dfs.name.dir</name>

<value>${hadoop.tmp.dir}/dfs/name</value>

<description>this is a comma-delimited list of directories

then the name table is replicated in all of the directories,

for redunancy.

</description>

</property>

</configuration>

.....................................................................................................................................

里面并没有有关datanode的配置信息,如果你有类似于下面的内容:

<property>

<name>dfs.data.dir</name>

<value>/data/hdfs/data</value>

</property>

说明你的datanode配置文件不再默认路径,而是你自己设置过的路径下。

(2)进入datanode的 dfs.data.dir 的 current目录,修改里面的文件VERSION

由于我是默认的,所以路径是/usr/local/hadoop/tmp/dfs/data/current/VERSION。

这个版本不同,可能路径也不同,最好自己去找找。

[[email protected] current]# vim /usr/local/hadoop/tmp/dfs/data/current/VERSION

.....................................................................................................................................

#Thu Oct 30 04:52:01 PDT 2014

namespaceID=463031076

storageID=DS-1787154912-192.168.0.100-50010-1413940826285

cTime=0

storageType=DATA_NODE

layoutVersion=-32

.....................................................................................................................................

看里面的namespaceID=463031076,可以发现,跟hadoop-root-datanode-hadoop.log中的datanode namespaceID = 463031076的一样,这说明他是读取这个文件的,所以我们没有找错。

(3)修改这个版本信息文件VERSION

ID与hadoop-root-datanode-hadoop.log中 namenode namespaceID = 942590743一致

ps:我想大家应该可以想到namenode namespaceID是从哪里来的:

[[email protected] current]# vim /usr/local/hadoop/tmp/dfs/name/current/VERSION

.....................................................................................................................................

#Fri Oct 31 19:23:44 PDT 2014

namespaceID=942590743

cTime=0

storageType=NAME_NODE

layoutVersion=-32

.....................................................................................................................................

这里的ID是不是与hadoop-root-datanode-hadoop.log中 namenode namespaceID = 942590743一致?

(4)修改完以后,重新运行datanode

[[email protected] current]# hadoop-daemon.sh start datanode

[[email protected] current]# jps

8581 DataNode

看到DataNode,说明已经跑起来了。

时间: 2024-10-23 04:16:46

datanode启动失败的相关文章

hadoop datanode启动失败

问题导读: 1.Hadoop出现问题时,该如何入手查看问题?2.datanode无法启动,我们该怎么解决?3.如何动态加入DataNode或TaskTracker? 一.问题描述当我多次格式化文件系统时,如 [email protected]:/usr/local/hadoop-1.0.2# bin/hadoop namenode -format 复制代码 会出现datanode无法启动,查看日志,发现错误为: 2012-04-20 20:39:46,501 ERROR org.apache.h

hdfs datanode 启动失败

hadoop-root-datanode-ubuntu.log中: 2015-03-12 23:52:33,671 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to localhost/127.0.0.1:9000. Exiting.java.io.IOExc

hadoop动态添加datanode启动失败的经验

动态添加datanode节点,主机名node14.cnshell>hadoop-daemon.sh start datanodeshell>jps #查看datanode进程是否已启动发现DataNode进程启动后立即消失,查询日志发现一下记录: 2018-04-15 00:08:43,158 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: registered UNIX signal handlers for [TERM, HUP,

DataNode启动优化改进:磁盘检测并行化

前言 在本篇文章中,本人打算聊一个大家平常都会遇见到的场景:HDFS中的DataNode启动的问题.DataNode启动不是一件非常迅速的事情吗?这其中能有大问题?看到这里,如果你也是这么想的话,那说明一点:你所运维的集群碰到的异常场景还不太多.本文所要讲述的问题并不是DataNode无法启动的问题,而是它启动有时会过慢的问题.DataNode进程启动过慢造成的直接影响是其上数据的服务延时.集群规模在一个很大规模量级的情况下,如果出现了大量DataNode慢启动的现象,这将会对集群本身对外提供服

hadoop启动后,jps命令后发现nodename启动失败,检查日志报错:FSNamesystem initialization failed

1. 基本信息 hadoop    版本 hadoop-0.20.205.0.tar.gz 操作系统   ubuntu 2. 问题 在使用Hadoop开发初期的时候遇到一个问题. 每次重启系统后发现不能正常运行hadoop.必须执行  bin/hadoop namenode -format  进行格式化才能成功运行hadoop,但是也就意味着以前记录的name等数据丢失. 查询日志发现错误: 21:08:48,103 INFO org.apache.hadoop.hdfs.server.name

Mongodb分片配置服务器不同步导致mongos进程启动失败

生产环境中,使用的mongodb分片,由于突然断电,服务再起来的时候发现三个mongos进程中有一个启动失败,多次尝试仍不能启动.查看日志,内容如下: 大概意思是配置服务器configserver数据不同步. 解决办法: 杀死所有mongos进程 连接到每个分片的configserver,运行命令db.runCommand('dbhash') 找到MD5值,这时两个能正常运行的MD5值是一样的,不能正常运行的MD5和上面俩都不一样 删除不能正常运行的dbpath,将能正常运行的dbpath下的数

多学一点(十三)——解决Linux kdump服务启动失败

kdump 是 Linux Kernel 崩溃时的转储机制,简单理解就是在系统启动过程中如果 Kernel 因为某些原因崩溃了,kdump 就会负责记录日志以便排查原因.在 CentOS 6 等 Linux 发行版中,即便采用最小化安装, kdump 也会作为服务安装到系统中,此时可能因为我们对 Linux分配的内存的限制导致 kdump 服务开机启动失败,如图 1 所示: 图-1 kdump启动失败 解决 kdump 启动失败其实很简单,只要修改 grub.conf 文件,改变crashker

ORA-01078和LRM-00109问题导致ORACLE启动失败解决方法

操作环境 SuSE11 + ORACLE11gR2(11.2.0.3) 问题现象 新安装ORACLE启动失败,提示ORA-01078和LRM-00109错误.具体错误现象如下 SQL> startup ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/home/oracle/base/dbs/initora11g.ora'  问题分析 根据错误分析是查找不到参

CentOs 6.6里kdump启动失败的原因

在VMware中新安装了CentOs 6.6,重启系统发现kdump服务启动失败 先来说一下,什么是kdump kdump 是一种先进的基于 kexec 的内核崩溃转储机制.当系统崩溃时,kdump 使用 kexec 启动 到第二个内核.第二个内核通常叫做捕获内核,以很小内存启动以捕获转储镜像.第一个内核保 留了内存的一部分给第二内核启动用.由于 kdump 利用 kexec 启动捕获内核,绕过了 BIOS,所 以第一个内核的内存得以保留.这是内核崩溃转储的本质. 启动失败的原因 查看 /etc