从HDFS读取属性文件

时间:2015-03-10 06:26:31

标签: java hadoop hdfs dfs distributed-filesystem

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

请参阅:FileInputStream for a generic file System

答案 1 :(得分: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