每次计算机启动后都需要格式化hadoop namenode

djmepvbi  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(401)

我已经搜索了这个问题,虽然有许多类似的例子,但我找不到一个共同的解决方案或一个适合我的。我已经安装了hadoop,并在伪分布式模式下运行。它工作得很好,我可以启动和停止它很多次,让它运行良好。但是,如果我重新启动计算机并启动hadoop,namenode不会启动。我需要格式化它每一次,这意味着我失去了所有的工作,我已经做了,需要重新开始。
我正在关注hadoop:权威指南v3。
my 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的方法,这样我就不需要在每次重新启动计算机时重新格式化namenode了?
谢谢。

o75abkj4

o75abkj41#

看起来您没有覆盖hdfs配置dfs.name.dir、dfs.data.dir,默认情况下它指向/tmp目录,当您的计算机重新启动时,该目录将被清除。您必须通过重写hadoop配置目录中hdfs-site.xml文件中的这些值,将其从/tmp更改到主目录中的另一个位置。
执行以下步骤
在主目录中创建一个目录,用于保存namenode映像和datanode块(替换为您的登录名)

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并开始使用

相关问题