将开发好的spark application(对于java/scala来说是jar)提交到spark集群执行的方式通常包括两种,一种是通常使用的spark submit脚本(spark 2.x版本是spark2-shell,可以参考https://www.jianshu.com/p/1d41174441b6),另一种是spark官方提供的java API SparkLauncher类。下面来介绍使用SparkLauncher来完成spark application提交的方法。
既然要将application jar提交给spark集群处理,那么首先就涉及到两个问题:
待提交的application jar,该jar可以将application打包得到;
提交1中application jar(即调用SparkLauncher)的代码(既可以在本地执行,也可以打包成jar和1中的application jar一起放在spark集群某台机器上,本文就是打包成jar)。
Step 1. 开发好待提交的application并打包成jar(以下称appJar)
......
Step 2. 开发好完成提交过程的代码并打包成jar(以下称submitJar)
完成提交过程的代码如下:
// 待提交给spark集群处理的spark application jar(即appJar)所在路径
String appJarName = "/usr/data/sparkProject/jars/testSpark.jar"
SparkLauncher launcher = new SparkLauncher();
launcher.setAppResource(appJarName);
// 设置spark driver主类,