Spark-submit Executers没有获取属性

时间:2016-09-16 03:49:18

标签: apache-spark datastax-enterprise

我正在尝试将Spark应用程序部署到4节点DSE spark集群,并且我创建了一个包含所有依赖Jars的胖jar,并且我在src / main / resources下创建了一个属性文件,该文件具有批处理间隔主URL等属性等

我已经将这个胖罐子复制到掌握,我正在使用“spark-submit”提交申请,下面是我的提交命令。

dse spark-submit --class com.Processor.utils.jobLauncher --supervise application-1.0.0-develop-SNAPSHOT.jar qa

当我在单节点集群上运行时,一切正常,但如果在DSE spark独立集群上运行,上面提到的属性(如批处理间隔)将对执行程序不可用。我用谷歌搜索,发现这是很多人已经解决的常见问题。所以我已经按照其中一个解决方案创建了一个胖罐并尝试运行,但仍然,执行者无法使用我的属性。

有人可以就如何解决问题提出任何指示吗?

我使用的是DSE 4.8.5和Spark 1.4.2

这就是我加载属性的方式

 System.setProperty("env",args(0)) 

 val conf = com.typesafe.config.ConfigFactory.load(System.getProperty("env") + "_application")

1 个答案:

答案 0 :(得分:0)

找到了解决方案:

我从系统属性引用属性文件名(我使用命令行参数设置main方法),当代码在工作节点上发布并执行时,系统属性不可用(显然...... !!) ,所以不使用typesafe ConfigFactory来加载属性文件,而是使用简单的Scala文件读取。