Hadoop namenode需要在每台电脑启动后格式化

标签 hadoop

我已经搜索过这个问题,虽然有很多类似的例子,但我找不到通用的解决方案或适合我的解决方案。我已经安装了 Hadoop 并以伪分布式模式运行。它工作正常,我可以多次启动和停止它并使其运行良好。但是,如果我重新启动计算机并启动 Hadoop,namenode 不会启动。我每次都需要格式化,这意味着我失去了我所做的所有工作,需要重新开始。

我正在关注 Hadoop:权威指南 v3。

我的 core-site.xml 说:

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost/</value>
    </property>
</configuration>

我的 hdfs-site.xml 说:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

有没有一种配置 Hadoop 的方法,这样我就不需要在每次重启计算机时都重新格式化名称节点?

谢谢。

最佳答案

看起来您没有覆盖 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>
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

</configuration>

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

关于Hadoop namenode需要在每台电脑启动后格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27083114/

相关文章:

java - hadoop 失败的原因是什么?

hadoop - 在hadoop中解析Spark驱动程序主机时出现错误

Hadoop 发行版

performance - Hadoop减少内存中的洗牌合并

Hadoop distcp 从本地复制到 gcp 奇怪的行为

apache-spark - 写入hdfs路径时出现错误java.io.IOException:无法重命名

sql - 了解WHERE子句中的SQL连接

scala - printwriter 在 hdfs 路径中只考虑一个斜杠而不是双斜杠

hadoop - 每个 Hadoop 服务器应该有多少个 HBase 服务器?

hadoop fs -ls 隐藏文件