大家好!
我試圖通過類型安全火花提交任務配置文件和打印信息的配置文件。
代碼:
進口org.slf4j。{記錄器,LoggerFactory} com.typesafe.config進口。{配置,ConfigFactory} org.apache.spark.sql進口。SparkSession對象引導延伸MyLogging {val火花:SparkSession = SparkSession.builder.enableHiveSupport () .getOrCreate () val配置:配置= ConfigFactory.load (application.conf) def主要(args:數組[String]):單位= {val url:字符串= config.getString (db.url) val用戶:字符串= config.getString (db.user) println (url) println(用戶)}}
應用程序。配置文件:
db {url = " jdbc: postgresql: / / localhost: 5432 /測試”用戶=“測試”}
我已經上傳文件到dbfs和使用路徑來創建工作。
json:火花提交工作
{" new_cluster ": {“spark_version”:“6.4.x-esr-scala2.11”、“azure_attributes”:{“可用性”:“ON_DEMAND_AZURE”、“first_on_demand”: 1、“spot_bid_max_price”: 1},“node_type_id”:“Standard_DS3_v2”、“enable_elastic_disk”:真的,“num_workers”: 1},“spark_submit_task”:{“參數”:[”——階級”,“引導”,“——相依”,“spark.driver。extraClassPath = dbfs: / tmp /”、“——conf”、“spark.executor。extraClassPath = dbfs: / tmp /”、“文件”、“dbfs: / tmp /應用程序。配置”、“dbfs: / tmp / code-assembly-0.1.0。jar”)}, "email_notifications": {}, "name": "application-conf-test", "max_concurrent_runs": 1 }
我上麵已經使用json創建火花提交作業並試圖運行spark-submit工作使用datbricks CLI命令。
錯誤:
異常的線程com.typesafe.config“主要”。配置Exception$Missing: No configuration setting found for key 'db' at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:124) at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:147) at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:159) at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:164) at com.typesafe.config.impl.SimpleConfig.getString(SimpleConfig.java:206) at Bootstrap$.main(Test.scala:16) at Bootstrap.main(Test.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52) at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:845) at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:161) at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:184) at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86) at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:920) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:929)
我可以看到在文件日誌,但下麵行不加載。
SparkContext 21/09/22 07:21:43信息:添加文件dbfs: / tmp /應用程序。參看dbfs: / tmp /應用程序。配置時間戳1632295303654 21/09/22 07:21:43信息跑龍套:抓取dbfs: / tmp /應用程序。conf / local_disk0 /火花- 20456 b30 fddd - 42 d7 - 9 - b23 9 e4c0d3c91cd / userfiles ee199161 - 6 - f48 4 c47 b1c7 - 763 ce7c0895f / fetchFileTemp4713981355306806616.tmp
請幫我在這類型安全配置文件傳遞給spark-submit工作使用適當的火花提交的工作參數。
嗨@Praveen Kumar巴楚
錯誤顯示工作是無法閱讀您的配置。這意味著通過配置的唯一方法就是通過提交參數。
嗨@Jose岡薩雷斯,
請參閱以下spark-submit json和幾個例子我們已經嚐試與火花提交參數
spark-submit json:
{" new_cluster ": {“spark_version”:“6.4.x-esr-scala2.11”、“azure_attributes”:{“可用性”:“ON_DEMAND_AZURE”、“first_on_demand”: 1、“spot_bid_max_price”: 1},“node_type_id”:“Standard_DS3_v2”、“enable_elastic_disk”:真的,“num_workers”: 1},“spark_submit_task”:{“參數”:[”——階級”,“引導”,“——相依”,“spark.driver。extraClassPath = dbfs: / tmp /”、“——conf”、“spark.executor。extraClassPath = dbfs: / tmp /”、“文件”、“dbfs: / tmp /應用程序。配置”、“dbfs: / tmp / code-assembly-0.1.0。jar”)}, "email_notifications": {}, "name": "application-conf-test", "max_concurrent_runs": 1 }
我們已經嚐試以下spark_submit_task參數在上麵的json
["——階級”,“引導”,“——相依”,“spark.driver.extraClassPath = / tmp /應用程序。conf”、“——”、“文件dbfs: / tmp /應用程序。配置”、“dbfs: / tmp / code-assembly-0.1.0。jar”)
["——階級”,“引導”,“——相依”,“spark.driver。extraClassPath = / tmp /”、“——conf”、“spark.executor。extraClassPath = / tmp /”、“文件”、“dbfs: / tmp /應用程序。配置”、“dbfs: / tmp / code-assembly-0.1.0。jar”)
["——階級”,“引導”,“——相依”,“spark.driver.extraClassPath = dbfs: / tmp /應用程序。conf”、“——相依”、“spark.executor.extraClassPath = dbfs: / tmp /應用程序。conf”、“——”、“文件dbfs: / tmp /應用程序。配置”、“dbfs: / tmp / code-assembly-0.1.0。jar”)
["——階級”,“引導”,“——相依”,“spark.driver。extraClassPath = dbfs: / tmp /”、“——conf”、“spark.executor。extraClassPath = dbfs: / tmp /”、“文件”、“dbfs: / tmp /應用程序。配置”、“dbfs: / tmp / code-assembly-0.1.0。jar”)
["——階級”,“引導”,“——相依”,“spark.driver.extraClassPath = dbfs:。配置”、“/”、“——spark.executor.extraClassPath = dbfs:。/”、“文件”、“dbfs: / tmp /應用程序。配置”、“dbfs: / tmp / code-assembly-0.1.0。jar”)
["——階級”,“引導”,“——driver-java-options”,“-Dconfig.file =應用程序。conf”、“——相依”、“spark.executor.extraJavaOptions = -Dconfig.file =應用程序。conf”、“——”、“文件dbfs: / tmp /應用程序。配置”、“dbfs: / tmp / code-assembly-0.1.0。jar”)
["——階級”,“引導”,“——相依”,“spark.driver.extraJavaOptions = -Dconfig.file =應用程序。conf”、“——相依”、“spark.executor.extraJavaOptions = -Dconfig.file =應用程序。conf”、“——”、“文件dbfs: / tmp /應用程序。配置”、“dbfs: / tmp / code-assembly-0.1.0。jar”)
所有上麵的spark_submit_task參數,我們麵臨著同樣的低於指定的錯誤。
異常的線程com.typesafe.config“主要”。配置Exception$Missing: No configuration setting found for key 'db' at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:124) at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:147) at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:159) at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:164) at com.typesafe.config.impl.SimpleConfig.getString(SimpleConfig.java:206) at Bootstrap.main(Test.scala:16) at Bootstrap.main(Test.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52) at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:845) at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:161) at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:184) at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86) at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:920) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:929)
請您能迅速幫助我們需要這個實現
主要代碼在你什麼?
嗨@Praveen Kumar巴楚請你試一試下麵的方法嗎?我如果這對你有用。
導入java。文件import org.apache.spark.SparkFiles //use parseFile instead of load val config: Config = ConfigFactory.parseFile( new File(SparkFiles.get("application.conf")))
注意:您將需要通過文件使用,文件
”——文件”、“dbfs: / tmp / application.conf”,