1

我正在尝试读取 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 文件?

谢谢!

4

2 回答 2

2

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

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

参考:通用文件系统的 FileInputStream

于 2015-03-10T07:00:37.283 回答
0
 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
于 2021-03-04T05:29:49.030 回答