为满足用户定制化数据查询分析的需求,EMR Serverless Spark 提供了可视化提交 Spark Jar 作业的方式。用户可以编写Java代码,提交一个SparkJar,完成分布式数据处理。
在提交 Spark Jar 作业之前,需要先拥有一个具有通用资源的资源队列或使用公共队列,如果在您的资源队列列表中并没有此种队列,那就需要您新创建一个队列来使用,具体操作可参考:创建资源队列。
新建 Tab 后,默认的开发类型为 Spark SQL,在编辑区域上方,提供开发类型选项,可以在此切换到 Spark Jar 的编辑页面。
在编辑界面中,需要您填写作业相关的参数
参数名称 | 参数作用 |
---|---|
作业名称 | SparkJar作业的名称,名称会体现在作业管理中,您可以在作业管理中,使用名称中的关键字进行作业查询。 |
主类 | SparkJar作业运行的主类 |
队列 | SparkJar作业运行的队列,需要您队列中存在通用资源,否则任务无法运行 |
任务主文件 | SparkJar作业的主要Jar资源,您可以将资源上传至TOS,然后在此指定tos路径 |
依赖Jar | 除了任务主文件,SparkJar作业还支持添加一些依赖的Jar文件,在任务运行时会被同时添加至任务classpath中。同样,您可以将资源上传至TOS并在此指定路径 |
依赖文件 | SparkJar作业的依赖文件,用户可以在任务代码中,通过api访问 |
Spark 参数 | Spark作业参数,可以指定Spark 作业所用的资源等 |
自定义参数 | SparkJar作业主类运行时,需要传入的参数 |
作业信息编辑完成后,即可点击提交按钮,提交成功后会在页面顶部显示一个 toast 信息进行提示,随后页面会自动跳转到作业管理页并筛选出该 Spark Jar 作业。
其中,UI 模式字段名和 JSON 模式的字段 KEY 的对应关系如下:
UI 模式 | JSON 模式 | 是否必须 | ||
---|---|---|---|---|
作业名称 | Name | Y | ||
语言类型 | Language | Y | ||
主类(Main Class) | MainClass | Y | ||
队列 | Queue | Y | ||
资源文件 | MainFile | Y | ||
依赖 Jar(Jars) | DependJars | N | ||
其他依赖文件(Files) | DependFiles | N | ||
Spark参数(Spark Conf) | Conf | N | ||
自定义参数(Main Conf) | MainArgs | N |
对于SparkJar作业,默认无法读写用户账户下LAS Formation的库表,如果您想在SparkJar作业中,通过Spark SQL/Table Api 进行库表的读写,需要在Spark 参数中额外设置:
参数名称 | 参数值 |
---|---|
serverless.spark.access.key | 访问LAS Formation库表所需的Access Key |
serverless.spark.secret.key | 访问LAS Formation库表所需的Secret Key |