【问题标题】:Query on hadoop namenode -format command查询 hadoop namenode -format 命令
【发布时间】:2017-08-05 19:13:27
【问题描述】:

在执行“hadoop namenode -format”时,出现以下消息。

Re-format filesystem in Storage Directory /opt/data/temp/dfs/name ? (Y or N)

在这里应该给什么? “Y”或“N”。

如果给定 Y,它会丢失来自 HDFS 的数据吗?

【问题讨论】:

    标签: hadoop hdfs namenode


    【解决方案1】:

    仅当dfs.namenode.name.dir 已存在时才会提示此问题,即目录已格式化或现有目录映射到dfs.namenode.name.dir

    如果您想再次重新格式化,请提供Y,否则提供N

    在提供Y 时,目录将被格式化,删除所有现有的元数据(fsimageedits 日志)。 此重新格式化仅删除元数据,必须手动删除数据dfs.datanode.data.dir 目录。

    【讨论】:

    • 我一次又一次地遇到“无法获得块长度”的问题。有一个源正在将记录写入 HDFS 和日志中,我一次又一次地看到这个“无法获取块长度”问题。此外,当我打开 HDFS 的文件时,它不会打开它,而是抛出这个块异常.当我执行hdfs fsck /时,它为/提供'HEALTHY'的输出。但是仍然出现这个块长度异常。当我重新启动hadoop守护进程时,我能够打开文件。但是来自该来源的hdfs编写器仍然抛出阻止异常
    • 当我执行“hadoop namenode -format”并在提示符下选择“Y”时,datanode 守护程序没有在任何从属服务器中启动。只有 nodemanager 在那里运行。然后我不得不从 hadoop.tmp.dir 中删除目录。这次格式化namenode并重新启动守护进程启动了datanodes,但我丢失了所有数据,因为我从hadoop.tmp.dir中删除了目录。我无法弄清楚:-为什么块长度异常会一次又一次地出现,以及格式化 namenode 和启动守护进程的最佳步骤顺序是什么
    • 来源是什么?我怀疑源没有正确关闭文件。
    • @jumbo,我在回答中提到过,格式化后,您必须在再次启动集群之前手动删除数据目录。格式化将删除元数据,并为名称节点生成一个新 ID。数据节点也必须具有相同的 clusterID 才能成为该集群的一部分。因此,需要删除数据目录。如果您不应该丢失数据,则首先不应该进行格式化。
    猜你喜欢
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    相关资源
    最近更新 更多