Hi正在尝试使用Java从HDFS读取一个文件。
连接到HDFS并列出文件是很好的。
但是,在尝试读取文件时,将得到以下异常
函数调用: fs.copyToLocalFile(path,dPath);
java.io.IOException: Could not obtain block: blk_-747325769320762541_16269493 file=/user/s3t.txt
at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.chooseDataNode(DFSClient.java:2266)
at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:2060)
at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2221)
at java.io.DataInputStream.read(Unknown Source)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:68)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:47)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:100)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:230)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:163)
at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1222)
at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1203)
at Access.main(Access.java:59)注释:能够使用fs.createNewFile(myPath);创建新文件
发布于 2013-10-21 15:35:03
你可以用两种方式检查。
请检查一下这两个。
发布于 2016-06-06 15:27:25
https://stackoverflow.com/a/37661092/5797400 -这可能会有帮助。这是我对could not obtain block: BlockMissingException的解决方案。
下面是链接的要点:
https://stackoverflow.com/questions/19494991
复制相似问题