java操作创建 目录是可以的的,但是读取文件,上传文件就不行了

来源:3-20 HDFS API编程之创建文件并写入内容

holyzhang3793990

2019-11-15

老师,那个java操作,创建目录是可以的,但是 读hdfs 文件内容 读不下来,还有上传到 hdfs文件,我用的是阿里云的centos7.2搭建的 Hadoop cdh 2.60版本。jar包和
安装的hadoop版本一致。且启动节点和端口都是正常的。
1、
这里执行创建的操作,在 hdfs根目录可以看到 a.txt 文件但是无内容
FSDataOutputStream out= fileSystem.create(new Path("/a.txt"));
out.write(“test_java_api”.getBytes());
out.flush();
out.close();
出现异常:
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /a.txt could only be replicated to 0 nodes instead of minReplication (=1). There are 1 datanode(s) running and 1 node(s) are excluded in this operation.
2、百度说,加上下面这句话
configuration.set(“dfs.client.use.datanode.hostname”, “true”);//让可以使用主机名传参数
但是:会报新的异常
java.io.IOException: DataStreamer Exception:

atorg.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:696)

Caused by: java.nio.channels.UnresolvedAddressException
at sun.nio.ch.Net.checkAddress(Net.java:101)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:622)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:192)at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:530)
atorg.apache.hadoop.hdfs.DFSOutputStream.createSocketForPipeline(DFSOutputStream.java:1610)
atorg.apache.hadoop.hdfs.DFSOutputStreamDataStreamer.createBlockOutputStream(DFSOutputStream.java:1408)atorg.apache.hadoop.hdfs.DFSOutputStreamDataStreamer.createBlockOutputStream(DFSOutputStream.java:1408) atorg.apache.hadoop.hdfs.DFSOutputStreamDataStreamer.createBlockOutputStream(DFSOutputStream.java:1408)atorg.apache.hadoop.hdfs.DFSOutputStreamDataStreamer.nextBlockOutputStream(DFSOutputStream.java:1361) atorg.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:588)
图片描述

写回答

1回答

Michael_PK

2019-11-15

这个问题比较抱歉,我没办法给你完全解决,因为云主机各产商的差别很多,我也不用这些云主机。根据其他兄弟们反馈过来的情况,有这几个思路,需要你自己排除下,一是内外网IP是否映射的有问题,二是云主机对应的端口是否都开放了。基本就这两个可能。由于各家云主机产品有差别,所以上课我并未直接使用云主机。

0
12
冷极
回复
Michael_PK
好的,谢谢老师
2020-07-29
共12条回复

Hadoop 系统入门+核心精讲

从Hadoop核心技术入手,掌握数据处理中ETL应用,轻松进军大数据

2397 学习 · 902 问题

查看课程