У меня есть искровое задание, которое я запускаю в режиме yarn
cluster
.Мне нужно передать специфический для приложения файл свойств Java.Я делаю это Java FileInputStream
.
Но я сталкиваюсь с FileNotFoundException для /home/aiman/config/my-file.properties
Мой файл свойств Java: /home/aiman/config/my-file.properties
mongo_server=my.mongo.server
mongo_port=1530
mongo_user=mongoadmin
mongo_password=readONLYpass
mongo_db=testdb
Мой spark-submit
выглядит так:
spark-submit --master yarn --deploy-mode cluster --class mongo.MongoRead --jars /home/aiman/ojdbc-7.jar /home/aiman/app/jars/MongoRead-0.1-jar-with-dependencies.jar /home/aiman/config/my-file.properties
Фрагмент кода:
public static void main(final String[] args) throws Exception
{
if(args.length<1){
System.out.println("Please provide properties file path");
System.exit(1);
}
System.out.println("Mongo Import Begins...");
Properties prop = new Properties();
InputStream in = null;
try{
in = new FileInputStream(args[0]);
prop.load(in);
}
catch(Exception e){
e.printStackTrace();
System.exit(1);
}
/*Reading the properties*/
String mongoServer = prop.getProperty("mongo_server");
String mongoPort = prop.getProperty("mongo_port");
String mongoUser = prop.getProperty("mongo_user");
....
...
String mongoAddress = "mongodb://"+mongoUser+":"+mongoPassword+"@"+mongoServer+":"+mongoPort+"/"+mongoDb+"."+tableNm;
SparkSession spark = SparkSession.builder()
.appName("MongoSparkRecordReader")
.config("spark.mongodb.input.uri", mongoAddress)
.config("spark.mongodb.output.uri", mongoAddress)
.getOrCreate();
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
...
..
}
Пожалуйста, подскажите, что происходит не так.Я неправильно читаю файл свойств, он не находит файл?