上传文件到HDFS报错:There are 0 datanode(s) running and 0 node(s) are excluded in this operation.

上传文件到HDFS的时候报错
_COPYING_ could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node(s) are excluded in this operation.

在这里插入图片描述
解决
原因似乎是因为datanode没有启动,查了解决方法,最终stakeoverflow的回答解决了问题,具体操作如下

STEP 1 : stop hadoop and clean temp files from hduser

sudo rm -R /tmp/*

also, you may need to delete and recreate /app/hadoop/tmp (mostly when I change hadoop version from 2.2.0 to 2.7.0)

sudo rm -r /app/hadoop/tmp
sudo mkdir -p /app/hadoop/tmp
sudo chown hduser:hadoop /app/hadoop/tmp
sudo chmod 750 /app/hadoop/tmp

STEP 2: format namenode

./bin/hdfs namenode -format

据说这个时候便可以看到datanode:

hduser@prayagupd:~$ jps
19135 NameNode
20497 Jps
19477 DataNode
20447 NodeManager
19902 SecondaryNameNode
20106 ResourceManager

但是我这里显示只有jps和datanode,先不管这么多,执行之前出错的上传命令试试,发现报错:
put: Cannot create file/user/hadoop/input/myLocalFile.txt._COPYING_. Name node is in safe mode.

发现namenode在安全模式中,执行

bin/hadoop dfsadmin -safemode leave

解除安全模式,再次执行上传命令,即可上传成功。
至此,问题解决。
此时jps仍然只有jps和datanode

hadoop@Darius:/usr/local/hadoop$ jps
15040 Jps
13405 DataNode

更新

又遇到了datanode无法重启的问题
这次是参考博客,感觉这个方法更简单一些,但是会全部清除所有数据:

# 关闭
./sbin/stop-dfs.sh
# 删除tmp文件
rm -rf ./tmp
# 重新格式化
./bin/hdfs namenode -format
# 重启
./sbin/start-dfs.sh

之后再在hdfs上操作的时候,参考厦大林子雨HDFS文件操作建个人目录后进行其他操作即可,注意不要直接复制这个操作里面的命令到shell中,会运行不起来。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值