[英]reading a .properties file stored in hdfs using java code
i need to read .properties file which is available in the hdfs. 我需要阅读hdfs中可用的.properties文件。 i am using the below code but it throws a run time error. 我正在使用以下代码,但会引发运行时错误。
FileSystem fs = FileSystem.get(config);
Properties conf = wc.createConfiguration();
Properties prop = new Properties();
String appPath = "hdfs://clusterdb05.com:8020/user/cmahajan/" + version + "/apps/apps/";
conf.setProperty(OozieClient.APP_PATH,appPath);
FileInputStream f = new FileInputStream("hdfs://clusterdb05.com:8020/user/cmahajan/app.properties");
ObjectInputStream f = new ObjectInputStream(fs.open(new Path("/user/cmahajan/app.properties")));
the run time error is : 运行时错误是:
LaunchJob.java:28: cannot find symbol
symbol : class ObjectInputStream
location: class LaunchJob
ObjectInputStream f = new ObjectInputStream(fs.open(new Path("/user/cmahajan/app.properties")));
^
LaunchJob.java:28: cannot find symbol
symbol : class ObjectInputStream
location: class LaunchJob
ObjectInputStream f = new ObjectInputStream(fs.open(new Path("/user/cmahajan/app.properties")));
For loading properties file form hdfs: 对于加载属性文件形式的hdfs:
replace key in getProperty . 替换getProperty中的键。
String CURRENCIES_DIM1 = null; String DATES_DIM2 = null; Configuration conf = new Configuration(); conf.addResource(new Path("/usr/local/hadoop/etc/hadoop/core-site.xml")); conf.addResource(new Path("/usr/local/hadoop/etc/hadoop/hdfs-site.xml")); String filePath = "hdfs://localhost:54310/user/CurrencyCache.properties"; Path path = new Path(filePath); FileSystem fs = path.getFileSystem(conf); try (FSDataInputStream currencyInputStream = fs.open(path)) { Properties currencyProp = new Properties(); currencyProp.load(currencyInputStream); CURRENCIES_DIM1= currencyProp.getProperty("key");//getting the 'CURRENCIES_DIM' file path from properties file DATES_DIM2= currencyProp.getProperty("key"); //getting the 'DATES_DIM' file path from properties file } catch (IOException e) { e.printStackTrace(); } fs.close();
Either use fully qualified name of class: 可以使用类的完全限定名称:
java.io.ObjectInputStream
OR 要么
import the class using following line: 使用以下行导入类:
import java.io.ObjectInputStream;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.