簡體   English   中英

lightbend config:在application.properties文件中傳遞動態值

[英]lightbend config : pass dynamic values in application.properties file

我在scala代碼中使用了lightbend ,以便我的application.properties文件遠離jar。 我需要在application.properties文件中傳遞當前日期。

Date_read_write = 20190828 

我如何使它動態地拾取,如果是我可以提及的shell腳本

Date_read_write=`date +%Y%m%d`

如何在application.properties文件中執行類似的步驟?

更新時間添加

以下是我的application.properties文件:

hdfs_link = hdfs://XX.XXX.XXX.XX:8080/sessions/data/events
mediaKey = 1234
eventName = media
Date_read_write = 20190815
time = *_W
parts = *

我正在上面使用生成hdfs://XX.XXX.XXX.XX:8080/sessions/data/events/1234/media/20190815/*_W/*

使用:

val conf = ConfigFactory.load() 
val hdfs_path = conf.getString("hdfs_link")+"/"+conf.getString("mediaKey")+"/"+conf.getString("eventName")+"/"+conf.getString("Date_read_write")+"/"+conf.getString("time")+"/"+conf.getString("parts")

但是當我添加

--driver-java-options -DDate_read_write=`date --date='1 days ago' '+%Y%m%d'`

到我的hdfs://XX.XXX.XXX.XX:8080/sessions/data/events/1234/media/20190828/*/*提交逗號,我的URL正在圖注hdfs://XX.XXX.XXX.XX:8080/sessions/data/events/1234/media/20190828/*/*

我不知道為什么這種加法會改變time的價值。

以下是我的spark提交命令:

nohup spark-submit --master yarn --deploy-mode客戶端--num-executors 20 --executor-cores 6 --driver-memory 10g --executor-memory 10g --classmetrics.MasterAggregateTable --files application.properties --driver-java-options -Dconfig.file = application.properties --driver-java-options -DDate_read_write =`date +%Y%m%d` --jars com.datastax.spark_spark-cassandra-connector_2.11- 2.3.0.jar UserMetrics.jar和

您可以按系統屬性覆蓋 application.properties所有設置

java -DDate_read_write=`date +%Y%m%d` -jar yourapp.jar

在該庫的默認使用中,完全匹配系統屬性已經覆蓋了相應的配置屬性。

這不需要對jar內的配置文件進行任何更改。

您可以考慮為此使用環境變量。 只需在application.properties文件中添加環境變量替換:

date = ${DATE}

然后,在運行應用程序時,只需設置DATE變量:

 DATE=`date +%Y%m%d` java -jar yourapp.ja

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM