Hadoop问题:DataNode线程不见了

DataNode线程不见了

问题描述

    最近配置Hadoop的时候出现了这么一个现象,启动之后,使用jps命令之后是这样的:

    看不到DataNode进程,但是能够正常的工作,是不是很神奇啊?

    在一番百度谷歌之后,得出了结论:

    我在启动Hadoop之前和启动之后,曾经多次使用如下命令,针对NameNode进行格式化:

hadoop namenode -format

    这个问题,还不是你直接多次格式化造成的,而是你格式化之后,启动了Hadoop,然后将Hadoop关闭,重新格式化,再启动Hadoop造成的,这个时候你就发现,DataNode线程在jps命令中消失了,还能正常使用,就如我开头的那张图一样。造成这个问题的根源,是NameNode和DataNode的版本号不一致所致。这个问题不仅仅会出现在伪分布式,完全分布式中也会出现。这里以伪分布式进行展示。

    如下是正常的两个文件的信息。

    NameNode VERSION文件信息:

namespaceID=51628800
clusterID=CID-97bb16dc-c439-427c-9841-5e6e4667cb65
cTime=0
storageType=NAME_NODE
blockpoolID=BP-1918730739-172.17.241.131-1526803461127
layoutVersion=-63

    DataNode VERSION文件信息:

storageID=DS-4281731b-7a44-4c86-8844-e1927a4fc966
clusterID=CID-97bb16dc-c439-427c-9841-5e6e4667cb65
cTime=0
datanodeUuid=197c3d68-454b-4287-a5e5-90c01ed9be53
storageType=DATA_NODE
layoutVersion=-56

    所谓版本号不一致,就是说的clusterID的值,上面的信息展示的是一致的,也表明NameNode和DataNode是一组的。

    那么这两个文件存放在哪里呢?如下是你在Hadoop配置文件core-site.xml中的一项,就在此项指定的目录之下。

	<property>
		<!--用来指定hadoop运行时产生文件的存放目录-->	
		<name>hadoop.tmp.dir</name> 
		<value>/home/hadoop-2.7.1/tmp</value>
	</property>

    那我就以我这个配置的路径来进行查找,首先到tmp目录下:

    如上图是完整的查找路径。

问题分析

    下面进行此问题的分析:

    当第一次格式化,启动Hadoop的时候,没有任何问题,任何环节都是新产生的,所以哪怕你在启动Hadoop之前进行多次的NameNode格式化都可以,因为在Hadoop启动之前,DataNode的版本还没有生成,只有Hadoop启动之后DataNode的版本等响应信息才会在指定的目录下生成,这个时候就产生了NameNode和DataNode的一对一的关系。

    当你关掉Hadoop之后进行二次NameNode格式化的时候,NameNode的版本信息等进行了重新写入,内容肯定和之前的不一样,这样就造成了,上文中我提到的clusterID不一致的问题,这样,你再次启动Hadoop,所有功能都正常使用,但唯独jps命令下看不到DataNode线程,这当然会使我们每个程序员感到惊慌,怎么办?

解决方案

方案一

    首先,在格式化之前,将你设置的存储Hadoop信息目录下清空,即我上图中的例子tmp目录,将此目录清空即可。也可直接删除此目录,然后新建一个。

    然后,进行格式化,这样所产生的NameNode和DataNode信息都是新的,也都是一组的,问题就解决了,这个是最简单最有效的方法。

方案二

    如果有数据还在,又不想清空数据,那么这个方案就是你的福音。

    既然是版本号不一致产生的问题,那么我们就单独解决版本号的问题,将你格式化之后的NameNode的VERSION文件找到,然后将里面的clusterID进行复制,再找到DataNode的VERSION文件,将里面的clusterID进行替换,保存之后重启,那么就可以正常的使用了。查找的的路径,已经在上图中进行了展示,这里不做赘述。

    就以上问题,目前我只想到两个解决方案,如果还有,我会在这里进行更新。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据

Zzreal的大数据笔记-SparkDay01

Spark 一、Spark概述 1、什么是Spark Spark是一种快速、通用、可扩展的大数据分析引擎。它集批处理、实时流处理、交互式查询和图计算于一体,避免...

19810
来自专栏pangguoming

Hadoop视频教程汇总

一 慕课网 1.Hadoop大数据平台架构与实践--基础篇(已学习) 链接:https://www.imooc.com/learn/391 2.Hadoop进阶...

6834
来自专栏搜云库

大数据平台搭建 Hadoop-2.7.4 + Spark-2.2.0 快速搭建

Apache Spark 简介 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (...

5168
来自专栏about云

CDH(Cloudera)与hadoop(apache)对比

问题导读: 1.hadoop有几个版本? 2.CDH有几种安装方式? 3.CDH在安装认证方面做了什么改变? Cloudera的CDH和Apache的H...

4806
来自专栏美图数据技术团队

Spark on Yarn | Spark,从入门到精通

欢迎阅读美图数据技术团队的「Spark,从入门到精通」系列文章,本系列文章将由浅入深为大家介绍 Spark,从框架入门到底层架构的实现,相信总有一种姿势适合你,...

1470
来自专栏AILearning

Apache Spark 2.2.0 中文文档 - 概述 | ApacheCN

Spark 概述 Apache Spark 是一个快速的, 多用途的集群计算系统。 它提供了 Java, Scala, Python 和 R 的高级 API...

2899
来自专栏我是攻城师

Hadoop之NameNode+ResourceManager高可用原理分析

4337
来自专栏大数据

大数据干货系列(三)-Hadoop2.0总结

本文共计810字,预计阅读时长五分钟 Hadoop2.0总结 一、本质 Hadoop2.0,相比于Hadoop1.0,最明显的区别是YARN系统和HDFS2.0...

1989
来自专栏数据科学与人工智能

【Hadoop研究】Hadoop分布式文件系统HDFS的工作原理详述

Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。它能提供高吞吐...

3177
来自专栏灯塔大数据

每周学点大数据 | No.64 配置Hadoop

NO.64 配置Hadoop 在开始使用Hadoop 之前,先要对Hadoop 进行配置。Hadoop 的配置分为单机模式、完全分布式、伪分布式三种。单机模式一...

35110

扫码关注云+社区