java - 使用HDFS Java API从HDFS读取文件

标签 java hadoop hdfs

您好,我正在尝试使用Java API从HDFS读取文件。

连接到HDFS并列出文件工作正常。

但是在尝试读取文件时出现了Follow异常

函数调用: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)创建新文件;

最佳答案

您可以通过两种方式进行检查。

  • 检查文件的权限,文件的用户和组以及您的用户和组,您必须具有访问文件的权限。
  • 在远程访问文件时,可能是网络路径问题。

  • 请同时检查两者。

    关于java - 使用HDFS Java API从HDFS读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19494991/

    相关文章:

    java - 了解 Hadoop 文件系统计数器

    hadoop - PIG 中是否有 HBaseStorage 的替代方案

    hadoop - Hadoop:如何使多个用户能够书写?

    java - 是否可以在另一个类中调用一个类的构造函数?

    java - HttpMessageConversionException 中的 UnrecognizedPropertyException 未在 ControllerAdvice 中展开

    Java - 获取字符串的整数部分(多个)并将其存储在一个数组中

    python - Dataframe.toPandas 总是在驱动程序节点上还是在工作节点上?

    maven - Mapreduce Hadoop的PDF输入格式

    hadoop - 如何通过新的 Hadoop API 使用 MultipleTextOutputFormat?

    java - struts2从2.3.16更新到2.3.32(修复S2-045)后,JSP文件无法解析某些Object的字段