Hadoop namenode 为什么总是需要格式化?

标签 hadoop mapreduce

我有一个单节点 hadoop 1.0.4,它工作正常(我可以运行 map-reduce 作业)。我遇到的问题是每当我重新启动并执行 start-dfs.sh namenode 时都没有启动,我必须执行“hadoop namenode -format”然后 start-dfs.sh 和 start-mapred.sh 总是..这迫使我每次加载我的数据。您能否提示我可能需要检查的可能的解决方案或配置问题?

谢谢,

最佳答案

看起来你没有覆盖 hdfs 配置 dfs.name.dir , dfs.data.dir, 默认情况下它指向/tmp 目录将被清除当您的机器重新启动时。您必须通过覆盖位于 HADOOP 配置目录中的 hdfs-site.xml 文件中的这些值,将其从/tmp 更改为主目录中的另一个位置。

执行以下步骤

在您的主目录中创建一个目录用于保存名称节点图像和数据节点 block (替换为您的登录名)

mkdir /home/<USER>/pseudo/

如下修改HADOOP_CONF_DIR(hadoop配置目录)中的hdfs-site.xml文件

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
  <name>dfs.name.dir</name>
  <value>file:///home/<USER>/pseudo/dfs/name</value>
</property>
<property>
  <name>dfs.data.dir</name>
  <value>file:///home/<USER>/pseudo/dfs/data</value>
</property>
</configuration>

格式化你的 hdfs namenode 并开始使用

关于Hadoop namenode 为什么总是需要格式化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25696710/

相关文章:

eclipse - 在Hadoop中为Joboop创建JobConf

mongodb - 如何在 MongoDB 中通过将数组元素与 MapReduce 匹配来对文档进行分组?

java - HADOOP - 从 MapReduce 作业发出 JSON

azure - 在Windows Azure中的Hive表中插入数据

apache - 使用JDK1.6的CDH4上的giraph1.0

java - 无法找到或加载主类 com.sun.tools.javac.Main hadoop mapreduce

java - 运行hadoop流和mapreduce作业:PipeMapRed.waitOutputThreads():子进程失败,代码为127

hadoop - 在Windows中的Eclipse中调试hadoop Wordcount程序

amazon-web-services - EMR 主节点是否知道其集群 ID?

hadoop - Oozie-使用4-4-4日历进行交易