Reading .properties file stored in hdfs using java code

I need to read the .properties file, which is available in hdf. I use the code below, but it throws a runtime 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"))); 

runtime error:

 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"))); 
+4
source share
2 answers

Or use the fully qualified class name:

 java.io.ObjectInputStream 

OR

import the class using the following line:

 import java.io.ObjectInputStream; 
0
source

To load the properties of the hdfs form file:

  • make sure the path to the core-site.xml file , hdfs-site xml
  • hdfs port no (it will be available in core-site.xml )
  • replace the key in 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(); 
+1
source

Source: https://habr.com/ru/post/1440277/


All Articles