Hadoop Namenode格式化是什么?

34

格式化NameNode将从文件系统中删除所有数据,例如,所有块和元数据都将被删除。您可以使用以下命令在Hadoop安装文件夹中的终端中格式化NameNode:

  bin/hadoop namenode -format

它到底实现了什么?我想要理解名称节点格式化的原则及其重要性。谢谢...

3个回答

14

Hadoop NameNode是HDFS文件系统的中心化位置,它保存文件系统中所有文件的目录树,并跟踪文件数据在集群中存储的位置。简而言之,它保留与数据节点相关的元数据。当我们格式化namenode时,它会格式化与数据节点相关的元数据。通过这样做,所有数据节点上的信息都将丢失,并且可以重新用于新的数据。


感谢您解释了NameNode和DataNode的作用。我已经在我的本地Ubuntu安装中设置了Hadoop以在伪分布式模式下运行。我想探索格式化的确切机制,例如哪些数据被更改?这些更改如何传播到数据节点,涉及哪些协议等等......我知道这一切都太大了,无法在一个答案中概括。我只是想得到一个简洁的总结。但还是感谢您的回答..... - Ace
1
@techvineet 你提到数据节点上的信息丢失了。当我们格式化NameNode时,为什么数据节点上的数据会丢失? - Vinod Jayachandran

11

hadoop namenode -format 命令会格式化在 hdfs-site.xml 中指定位置的文件系统。

这里我的 namenode 目录位于 /usr/local/hadoop/dfs/name

<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/dfs/name</value>
<final>true</final>
</property>

2

简单来说,

  • NameNode 包含关于 DataNodes 中存储的数据的元数据;
  • 如果 NameNode 被格式化,只有元数据会被删除;
  • DataNode 中的原始数据不会受到影响;

8
“Original data in DataNode” 是指孤立的数据,因为它们没有从NameNode获取引用,所以是无用的。 - Thanga
为了后代,这种区别并非学术性质。如果您备份了您的NameNode元数据,那么数据在数据节点文件系统中可能不会消失,这一点非常重要。此外,如果您的数据节点对于您的安全需求来说不够安全,则孤立的数据可能会泄露,因为它没有被充分地从磁盘上清除,这一点可能非常重要。 - jennykwan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接