问题描述
阿里云服务器命令行使用命令可以上传文件,但HDFS java API上传失败,上传后只有文件名没有数据
报错: could only be written to 0 of the 1 minReplication nodes. There are 1 datanode(s) running and 1 node(s) are excluded in this operation
解决思路
Hadoop的NameNode节点和DataNode节点之间是使用内网IP通信的,所以不管我们配置单机伪分布式,还是集群(CDH,HDP...)都是需要配置内网IP和主机名的映射,因为我们外网开发环境可以通过外网IP访问NameNode节点,所以创建目录是没问题的,但是文件的内容需要写到DataNode节点上,这时外网是无法和DataNode节点直接通信发数据的(需要了解NameNode和DataNode之间数据的传输机制也就是put和get操作).
解决办法
1.在服务器端配置内网IP和主机名映射,在外网开发机器上配置外网IP和主机名映射(主机名相同)</