从 HDFS 读取属性文件
Read a properties file from HDFS
我正在尝试读取 HDFS 上的 Java 属性文件,如下所示:
try {
properties.load(new FileInputStream("hdfs://user/hdfs/my_props.properties"));
} catch (IOException e) {
throw new RuntimeException("Properties file not found.");
}
但它似乎不起作用,我得到 "Properties file not found." 异常。如果我替换本地文件的路径,它工作正常并且我能够读取该文件。
是否可以使用 FileInputStream 读取 HDFS 文件?
谢谢!
我希望你需要使用 hadoop jar 并且还需要文件系统来从 HDFS 读取。像这样的东西应该放在你的代码之前。
Path pt=new Path("hdfs://user/hdfs/my_props.properties");
FileSystem fs = FileSystem.get(new Configuration());
参考:FileInputStream for a generic file System
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
我正在尝试读取 HDFS 上的 Java 属性文件,如下所示:
try {
properties.load(new FileInputStream("hdfs://user/hdfs/my_props.properties"));
} catch (IOException e) {
throw new RuntimeException("Properties file not found.");
}
但它似乎不起作用,我得到 "Properties file not found." 异常。如果我替换本地文件的路径,它工作正常并且我能够读取该文件。
是否可以使用 FileInputStream 读取 HDFS 文件?
谢谢!
我希望你需要使用 hadoop jar 并且还需要文件系统来从 HDFS 读取。像这样的东西应该放在你的代码之前。
Path pt=new Path("hdfs://user/hdfs/my_props.properties");
FileSystem fs = FileSystem.get(new Configuration());
参考:FileInputStream for a generic file System
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