【问题标题】:hadoop-1.2.1 namenode is not formattedhadoop-1.2.1 namenode 未格式化
【发布时间】:2017-03-02 23:49:14
【问题描述】:

我已经在 Ubuntu 16 中安装了 hadoop 1.2.1,配置如下:

核心站点.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' folder path 我对此表示怀疑,两者是否必须在同一个文件夹中。

'data' folder path

【问题讨论】:

标签: ubuntu hadoop hdfs namenode


【解决方案1】:

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

因此,如果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目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    • 1970-01-01
    • 2013-05-28
    相关资源
    最近更新 更多