【发布时间】:2015-01-31 14:15:27
【问题描述】:
对于 Hadoop 2.6.0 中的伪分布模式,我们是否必须每次都格式化 namenode。
我在家里使用 hadoop 2.6.0,但每次我使用 start-dfs.sh 和 start-yarn.sh 时,我都必须格式化我的 namenode。
还有其他方法可以避免这种情况吗?请给我一些建议来摆脱这个!
【问题讨论】:
对于 Hadoop 2.6.0 中的伪分布模式,我们是否必须每次都格式化 namenode。
我在家里使用 hadoop 2.6.0,但每次我使用 start-dfs.sh 和 start-yarn.sh 时,我都必须格式化我的 namenode。
还有其他方法可以避免这种情况吗?请给我一些建议来摆脱这个!
【问题讨论】:
不,即使在伪分布式模式下,您也不必总是格式化 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 后我又丢失了所有数据。