【问题标题】:Is Namenode format in pseudo distribution mode is necessary everytime每次都需要伪分布式模式下的Namenode格式吗
【发布时间】:2015-01-31 14:15:27
【问题描述】:

对于 Hadoop 2.6.0 中的伪分布模式,我们是否必须每次都格式化 namenode。

我在家里使用 hadoop 2.6.0,但每次我使用 start-dfs.sh 和 start-yarn.sh 时,我都必须格式化我的 namenode。

还有其他方法可以避免这种情况吗?请给我一些建议来摆脱这个!

【问题讨论】:

    标签: hadoop hdfs


    【解决方案1】:

    不,即使在伪分布式模式下,您也不必总是格式化 NameNode。不建议对 NameNode 进行多次格式化,除非 NameNode 丢失元数据信息。

    原因可能是这样的:告诉NameNode将其元数据信息存储在磁盘上何处的属性是dfs.name.dir(已弃用)或dfs.namenode.name.dir,默认情况下指向file://${hadoop.tmp.dir}/dfs/name,而/tmp/dfs/name又指向/tmp/dfs/name,所以每次重新启动系统时,/tmp 目录都会被清除,因此您必须再次格式化 NameNode。

    因此,请确保将属性 dfs.namenode.name.dir 指向一个不会被清除的更持久的位置。

    【讨论】:

    • 会尽力回复你:)
    • 我通过将dfs.namenode.name.dir 的值创建为/usr/local/hadoop/tmp 进行了尝试,但在格式化namenode 后我又丢失了所有数据。
    • 如果再次格式化命令,则不应多次格式化 NameNode,否则 NameNode 将擦除所有元数据,请将 NameNode 格式化视为格式化硬盘。
    • 是的,您还应该更改 dfs.datanode.data.dir 以确保您不会丢失数据。让我这么说吧,NN 存储元数据信息,DN 存储实际数据块。因此,格式化 NameNode 会清除 NameNode 中的所有元数据信息,但 datanode 中的数据不会被清除但无法使用,因为没有人有信息可以从多个 datanode 中为一个文件收集块。
    • 是的,这是正确的,因为您一直在更改正在运行的集群上的目录。
    猜你喜欢
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    相关资源
    最近更新 更多