格式化NN报错: java.io.IOException: Cannot create directory /tmp/dfs/name/current
来源:3-8 HDFS伪分布式环境搭建
Leaf_Ye
2019-03-26
搭建好了之后格式化NN报错
hdfs namenode -format
19/03/26 22:34:44 WARN namenode.NameNode: Encountered exception during format:
java.io.IOException: Cannot create directory /home/app/tmp/dfs/name/current
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:337)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:548)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:569)
at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:148)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1041)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1479)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1606)
19/03/26 22:34:44 ERROR namenode.NameNode: Failed to start namenode.
java.io.IOException: Cannot create directory /home/app/tmp/dfs/name/current
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:337)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:548)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:569)
at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:148)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1041)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1479)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1606)
19/03/26 22:34:44 INFO util.ExitUtil: Exiting with status 1
19/03/26 22:34:44 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop000/192.168.0.105
************************************************************/
tmp 文件下也是完全空的 tmp是自己手动建立的
[hadoop@hadoop000 tmp]$ pwd
/home/hadoop/app/tmp
[hadoop@hadoop000 tmp]$ ll
total 0
[hadoop@hadoop000 tmp]$
core-site.xml 配置
<configuration>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
</property>
</configuration>
</configuration>
hdfs-site.xml
<configuration>
<configuration>
<!--副本系数 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--临时文件如果不指定每次启动操作系统都会被清除-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/app/tmp</value>
</property>
</configuration>
</configuration>
hadoop-env.sh 没有改, 因为JAVA_HOME已经被设置成了环境变量了, 按道理说改不改都可以啊.
其实我也尝试过修改,结果发现问题还是重复出现。
各位大佬有遇到这种情况吗?
写回答
2回答
-
你的这个tmp目录是什么权限?
022019-03-26 -
Leaf_Ye
提问者
2019-03-26
。 找到原因了。
临时文件应该配置到core-site 里面不应该配到 hdfs-site 里面
临时文件写错路径, 因为是非root用户 没有读写/home 非 hadoop目录的权限。结果死活不行。
大家以后也要注意啊。
10
相似问题