【问题标题】:Read a properties file from HDFS从 HDFS 读取属性文件
【发布时间】:2015-05-11 12:25:17
【问题描述】:

我正在尝试读取 HDFS 上的 Java 属性文件,如下所示:

try {
    properties.load(new FileInputStream("hdfs://user/hdfs/my_props.properties"));
} catch (IOException e) {
    throw new RuntimeException("Properties file not found.");
}

但它似乎不起作用,我得到“找不到属性文件”。例外。如果我替换本地文件的路径,它可以正常工作并且我能够读取该文件。

是否可以使用 FileInputStream 读取 HDFS 文件?

谢谢!

【问题讨论】:

    标签: java hadoop hdfs microsoft-distributed-file-system distributed-filesystem


    【解决方案1】:
     val fs = FileSystem.get(new Configuration)
     val hdfsPath = new Path("hdfs://user/hdfs/my_props.properties")
     val fis = new InputStreamReader(fs.open(hdfsPath))
     prop.load(fis) // This will be your properties object
    

    【讨论】:

      【解决方案2】:

      我希望您需要使用 hadoop jars 并且还需要 FileSystem 从 HDFS 读取。像这样的东西应该放在你的代码之前。

      Path pt=new Path("hdfs://user/hdfs/my_props.properties");
      FileSystem fs = FileSystem.get(new Configuration());
      

      参考:FileInputStream for a generic file System

      【讨论】:

      • 我得到“错误的 FS:hdfs://localhost:9000/user/hdfs/my_props.properties,预期:hdfs://nameservice”异常。任何想法如何正确设置路径?
      • 通过namenode:8020/path/to/file后工作。谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多