hadoop :mkdir: 'input': No such file or directory问题

初接触hadoop,遇到的问题真不少。在执行bin/hadoop fs -mkdir input时,出错了。测试发现,bin/hadoop fs -ls也不行。排查了一会才发现是版本的原因:

2.x以前的版本这个命令,2.x之后的版本命令改成了:bin/hdfs dfs -mkdir -p 文件名
input目录创建完成之后,开始上传本地目录:

bin/hdfs dfs -put /root/data /input 

发现报错,试试拷贝本地文件:

bin/hdfs dfs -copyFromLocal /root/data/person.txt /input

发现也报错:
这里写图片描述
看提示应该是datanode没启动。通过jps查看,果然是。然后开始重启hadoop,重启了之后,发现datanode依然没成功启来。没办法了,去查启动日志,发现以下异常:

FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool (Datanode Uuid unassigned) service to spark1/192.168.122.113:9000. Exiting.

java.io.IOException: Incompatible clusterIDs in /usr/local/programs/hadoop/tmp/dfs/data: namenode clusterID = CID-19f887ba-2e8d-4c7e-ae01-e38a30581693; datanode clusterID = CID-14aac0b3-3c32-45db-adb8-b5fc494eaa3d

这提示应该是指两个clusterID不一致。开始检查dfs下文件,data 和 name文件夹下有一部分文件。本想试试能不能通过文件覆盖解决不一致问题,后来觉得麻烦,就直接把文件name 和 data下的文件删了。然后重启hadoop…

本以为应该很顺利,没想问题又来了:

2016-05-13 15:28:28,952 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /usr/local/programs/hadoop/dfs/name/in_use.lock acquired by nodename 25041@spark1  
2016-05-13 15:28:28,954 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimage  
java.io.IOException: NameNode is not formatted.  
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:212)  
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1022)  
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:741)  
    at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:538)  
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:597)  
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:764)  
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:748)  
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1441)  
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1507) 

接着去格式化namenode..

然后,

bin/hdfs dfs -mkdir -p /input
bin/hdfs dfs -put /root/data /input

OK.

接下来,终于可以开始通过spark读取分析hdfs的文件了。。。

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值