AnalyticDB MySQL湖仓版(3.0)Spark离线应用和流应用的开发方法相同。本文以离线应用为例,介绍如何进行Spark作业开发。
开发工具
您可以通过如下两种开发工具进行Spark Batch和Streaming应用开发。
示例代码
本文以读取OSS数据为例,描述了典型的Spark离线应用的编写方式,包括应用名称、入口类所在的JAR包、入口类、入口类参数以及执行时的参数配置。命令行参数格式为JSON格式。示例如下:
{
"args": ["args0", "args1"],
"name": "spark-oss-test",
"file": "oss://<testBucketName>/jars/test/spark-examples-0.0.1-SNAPSHOT.jar",
"className": "com.aliyun.spark.oss.SparkReadOss",
"conf": {
"spark.driver.resourceSpec": "medium",
"spark.executor.resourceSpec": "medium",
"spark.executor.instances": 2,
"spark.adb.connectors": "oss"
}
}
参数说明如下。
参数名称 | 是否必填 | 示例值 | 使用说明 |
args | 否 | "args":["args0", "args1"] | 请根据业务需求,填写使用JAR包时需要使用的参数。多个参数之间以英文逗号(,)分隔。 |
name | 否 | "name": "spark-oss-test" | Spark应用名称。 |
file | Python/Java/Scala应用必填 | "file":"oss://<testBucketName>/jars/test/spark-examples-0.0.1-SNAPSHOT.jar" | Spark应用主文件的存储路径,文件路径需为绝对路径。主文件是入口类所在的JAR包或者Python的入口执行文件。 重要
|
className | Java/Scala应用必填 | "className":"com.aliyun.spark.oss.SparkReadOss" | Java或者Scala程序入口类名称。Python不需要指定入口类。 |
jars | 否 | "jars":["oss://<testBucketName>/path/to/jar","oss://testBucketName/path/to/jar"] | Spark应用依赖的JAR包,多个JAR包之间以英文逗号(,)分隔。需填写JAR包文件的绝对路径。JAR包在运行时会被加入到Driver和Executor JVM的ClassPath里面。 重要
|
files | 否 | "files":["oss://<testBucketName>/path/to/files_name1","oss://<testBucketName>/path/to/files_name2"] | Spark应用依赖的文件资源,文件会被下载到Driver和Executor进程的当前执行目录下。 支持配置文件别名,例如 说明
|
archives | 否 | "archives":["oss://<testBucketName>/path/to/archives","oss://<testBucketName>/path/to/archives"] | Spark应用依赖的压缩包资源,目前支持.TAR.GZ后缀。压缩包会被解压到当前Spark进程的当前目录下。 支持配置文件别名,例如 说明 Spark应用所依赖的所有压缩包须存储在OSS中。压缩包解压缩失败,任务会失败。 |
pyFiles | Python应用可选 | "pyFiles":["oss://<testBucketName>/path/to/pyfiles","oss://<testBucketName>/path/to/pyfiles"] | PySpark依赖的Python文件,后缀可以是ZIP、PY和EGG。如果依赖多个Python文件,建议使用ZIP或者EGG压缩包。您可以在Python代码中以module方式引用Python文件。多个压缩包中间使用英文逗号(,)分隔。 说明 Spark应用所依赖的所有Python文件须存储在OSS中。 |
conf | 是 | "conf":{"spark.driver.resourceSpec": "medium",spark.executor.resourceSpec":"medium,"spark.executor.instances": 2,"spark.adb.connectors": "oss"} | 与开源Spark中的配置项基本一致,参数格式为key: value 形式,多个参数之间以英文逗号(,)分隔。与开源Spark用法不一致的配置参数及AnalyticDB MySQL特有的配置参数,请参见Conf配置参数。 |