通过java代码上传文件到hdfs时,hdfs文件系统上的文件大小为o

在这里插入图片描述
原因:文件夹和文件名都是存放在 NameNode 上的,本地可以通过公网访问 NameNode,所以创建文件夹和文件都可以,但是当写数据的时候,NameNode 和DataNode 是通过内网通信的,NameNode 会返回给 DataNode 的内网 IP,本地就访问不了了。

所以在java代码中需要添加一句

conf.set("dfs.client.use.datanode.hostname", "true");

并且将配置 hdfs-site.xml 文件内容中加上

<property>
	<name>dfs.client.use.datanode.hostname</name>
	<value>true</value>
</property>

就可以成功写入了
在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页