如何在hdfs中持久化namenode信息

Posted

技术标签:

【中文标题】如何在hdfs中持久化namenode信息【英文标题】:How to persist namenode information in hdfs 【发布时间】:2012-09-25 09:23:38 【问题描述】:

我已经在我的桌面上设置了一个单节点集群。问题是我不能让我的桌面一直运行。我确实执行了 stop-all.sh,但稍后当我执行 start-all.sh 时,我的 namenode 没有启动。最后我必须做 %hadoop namenode -format ,通过丢失我的所有数据来继续。

【问题讨论】:

【参考方案1】:

出现严重错误。请检查 namenode 写入的图像和编辑文件会发生什么。如果他们没问题 - NameNode 可以启动。 另外......存储NN数据的最后一个地方是HDFS - 因为你会遇到鸡蛋和鸡肉的问题。 W/o NN 数据 HDFS 不可访问。

【讨论】:

我在 core-sites.xml 中添加了 hadoop.tmp.dir,现在一切正常。但为什么它首先发生。 Hadoop 默认采用 /tmp/hadoop-$user.name。在我的情况下,访问被拒绝。 @david-gruzman 如果拒绝访问 tmp 文件,hadoop 是否会开始使用 hdfs 本身? 我几乎可以肯定,如果 HDFS 无法访问它需要的某些目录,它将无法启动/运行。 Hadoop 肯定不会使用 HDFS 代替本地目录。 CDH 甚至会检查 dirs 是否具有他们期望的完全权限,否则无法正常工作

以上是关于如何在hdfs中持久化namenode信息的主要内容,如果未能解决你的问题,请参考以下文章

SNN 合并流程

hadoop中 namenode的持久化

HDFS SecondaryNameNode的原理和作用

Hadoop:NameNode如何知道哪些块对应于一个文件?

NameNode和SercodNameNode

Hadoop