hadoop-1.2.1 namenode未格式化

hadoop-1.2.1 namenode is not formatted

我在Ubuntu16安装了hadoop 1.2.1,配置如下:

核心-site.xml

<property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:8020</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>tmpDir/snadikop/hadoopdata</value>

hdfs-site.xml

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

mapred-site.xml

<configuration>
<property>
    <name>mapred.job.tracker</name>
    <value>localhost:8021</value>
</property>

当我第一次启动时,一切正常。但是当我重新启动系统时,当我尝试启动守护进程时,namenode 没有启动。

尝试过

hadoop namenode -format 

命令 并尝试了

sudo chown snadikop tmpDir/snadikop/hadoopdata
sudo chmod 750 tmpDir/snadikop/hadoopdata

在哪里 斯纳迪科普 是用户。 仍然无法解决这个问题。 请帮我解决这个问题?

谢谢。

下面是我的日志文件

2017-03-02 18:07:01,185 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.
java.io.IOException: NameNode is not formatted.
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:331)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:395)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:299)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:569)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1479)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1488)
2017-03-02 18:07:01,377 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.io.IOException: NameNode is not formatted.
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:331)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:395)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:299)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:569)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1479)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1488)

2017-03-02 18:07:01,411 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: SHUTDOWN_MSG: 

这就是终端中发生的事情

snadikop@satish-vb:~$ jps
11492 NameNode
11654 DataNode
11863 Jps
11818 SecondaryNameNode
snadikop@satish-vb:~$ jps
11654 DataNode
11880 Jps
11818 SecondaryNameNode
snadikop@satish-vb:~$ 

下面是 'name' 和 'data' 文件夹的截图位置。 'name' folder path 我对此有疑问,两者是否必须在同一个文件夹中。

'data' folder path

您提供给 hadoop.tmp.dir 的值是一个相对路径,每次都会根据调用 start 脚本的路径而改变。 此 hadoop.tmp.dir 目录路径将是 dfs.name.dirdfs.data.dir 的基本路径(如果它们未在 hdfs-site.xml 中明确设置)。

因此,如果 tmp.dir 发生变化,namenode 的名称目录也会发生变化,从而导致 Namenode is not formatted 错误。

使用绝对非tmp路径将这些属性添加到hdfs-site.xml

<property>
   <name>dfs.name.dir</name>
   <value>/home/username/namenode</value>
</property>
<property>
   <name>dfs.data.dir</name>
   <value>/home/username/datanode</value>
</property>

然后formatnamenode

hadoop namenode -format

同时将hadoop.tmp.dir的值修改为绝对路径,停止随机创建tmp个目录。

使用以下命令格式化您的名称节点:

$ bin/hdfs 名称节点格式