重新格式化hadoop集群中的namenode后重新启动datanode

问题描述:

使用hadoop安装官方文档中提供的基本配置,我可以运行hadoop集群并提交mapreduce作业。重新格式化hadoop集群中的namenode后重新启动datanode

问题是每当我停止所有守护进程并重新设置namenode的格式时,当我随后启动所有守护进程时,datanode不会启动。

我一直在寻找一个解决方案,它似乎是因为格式化只格式化namenode和datanode的磁盘空间需要删除。

我该怎么做?我需要对我的配置文件进行哪些更改?在做出这些更改后,如何再次格式化namenode时删除正确的文件?

+1

您是否在rm -rf/tmp/*从tmp中删除所有东西之后尝试格式化namenode(如果未在配置文件中手动定义tmp) – 2014-09-19 05:52:02

具体如果已提供的以下2个参数的配置可在hdfs-site.xml

dfs.name.dir被定义:确定其中在本地文件系统的DFS名称节点应存储名称table(fsimage)。如果这是一个以逗号分隔的目录列表,则名称表将被复制到所有目录中,以实现冗余。

dfs.data.dir:确定本地文件系统上DFS数据节点应存储其块的位置。如果这是以逗号分隔的目录列表,则数据将存储在所有已命名的目录中,通常位于不同的设备上。不存在的目录将被忽略

如果您为上述2个参数提供了特定的目录位置,那么您需要在格式化namenode之前删除这些目录。

如果所以默认它得到根据下文参数创建您没有提供上述2参数:

hadoop.tmp.dir可以在core-site.xml

再次被配置如果指定这个参数,然后您需要在格式化namenode之前删除该目录。

如果您还没有定义如此的默认设置,它会在/tmp/hadoop-$username(hadoop) user中创建,因此您需要删除此目录。

摘要:在格式化系统之前,必须删除名称节点和数据节点目录。默认情况下,它在/tmp/位置创建。