我正在尝试将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")
答案 0 :(得分:0)
找到了解决方案:
我从系统属性引用属性文件名(我使用命令行参数设置main方法),当代码在工作节点上发布并执行时,系统属性不可用(显然...... !!) ,所以不使用typesafe ConfigFactory来加载属性文件,而是使用简单的Scala文件读取。