是否可以提交应用程序配置文件而不将其作为资源编译到jar中?
我正在使用出色的Typesafe Config(//github.com/lightbend/config)与我的数据加载Spark应用程序一起将数据加载到DSE Graph中。我尝试了各种方法,例如:
只需包含conf文件
dse spark-submit --class com.myorg.dataloader.MySparkLoader --files ./application.conf ./dataloader-spark-1.0.0.jar
得到:
Exception in thread "main" java.lang.IllegalArgumentException: Graph 'default_graphname' does not exist
表示它使用了resources / reference.conf文件。
包含conf文件并告诉驱动程序
dse spark-submit --class com.myorg.dataloader.MySparkLoader --files ./application.conf --driver-java-options "-Dconfig.resource=application.conf" ./dataloader-spark-1.0.0.jar
得到:
Exception in thread "main" java.lang.ExceptionInInitializerError .... Caused by: java.io.IOException: resource not found on classpath: application.conf at com.typesafe.config.impl.Parseable$ParseableResources.rawParseValue(Parseable.java:726)
表示找不到实际文件
尝试从DSEFS加载
dse spark-submit --class com.myorg.dataloader.MySparkLoader --files ./application.conf --driver-java-options "-Dconfig.url=dsefs://application.conf" ./dataloader-spark-1.0.0.jar
得到:
Exception in thread "main" java.lang.ExceptionInInitializerError .... Caused by: java.net.MalformedURLException: unknown protocol: dsefs at java.net.URL.<init>(URL.java:607)
这让我很难过。
有人为DSE Analytics解决了这个问题吗?如果是这样,请您分享语法?我更喜欢 不 必须将配置加载到DSEFS中,但是如果我可以从命令行配置spark应用程序,则可以这样做。
最后说明:我确实在其他地方使用了命令行参数进行配置,但这在此特定应用程序中是不切实际的。我最基本的配置运行〜200行。