开发者学堂课程【SaaS 模式云数据仓库系列课程 —— 2021数仓必修课:MaxComputeSpark Spark 与 SparkSQL 对比分析及使用注意事项】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/55/detail/1052
MaxComputeSpark Spark 与 SparkSQL 对比分析及使用注意事项
内容简介:
一、功能特性
二、代码开发
三、DataWorks 模式
四、Q&A
一、功能特性
Spark 部署模式:
Spark on yarn
http://spark.apache.org/docs/latest/running-on-yarn.html
Spark onk8s
http://spark.apache.org/does/latest/running-on-kubernetes.html
Spark on MaxCompute
https://github.com/aliyun/MaxCompute-Spark/wiki
支持的数据源:
Spark on yarn/k8s 限制条件
1.支持数据源操作的 jar 包是否存在
2.网络是否可打通:平台环境
云上网络环境:公网、经典网络、 VPC
Spark on MaxCompute 限制条件
1.maxcompute 集群环境。支持访问 VPC、可申请访问公网
目前支持访问的数据源: maxcompute 、oss、VPC 下的 ECS/RDS/redis 等
提交方式:
Local
1.和开源相同,涉及到读写 maxcompute 表时,会是 tunnel 方式来读写,本地spark-defaults.
comp 中需要配置 tunnel endpoint。
2.会拉取表数据到本地,每次运行均会重新拉取;下载部分数据,可以在 SparkSqL 中指定分
区实现下。
Client
1.客户端不会启动 dirver
2.不再依赖 spark 客户端
Cluster
1.和开源相同
POM 文件:
注意事项:
1.spark 和 scala 版本
2.scope 配置:需要是 provided
参考示例:
https://github.com/aliyun/MaxCompute-Spark/blob/master/spark-2.x/pom.zn
< properties >
<spark. version>2.3.0</spark. version>
<cupid. sdk. version>3.3.8-public</cupid. sdk. version>
<scala. version>2. 11.8</scala. version>
<scala. binary. version>2. 11</scala. binary. version></ properties >
二、代码开发
Tips:
建议使用 SparkSql ,不要使用 ODPSops
val spark s Spark Session
. builder()
. appliame("SparkSQL-on- HaxCompute ")
. config("spark-sal, broadcast Timeout","no""(")
. config("spark-sql. cross-loin, enabled", true)
. conflig("odps, exec, dynamic, partition, mode","nonstrict")
-config("spark-sql catalog[ updatentation ","~dps")-get0-create()
import spark. val rdf-spil(s"select+from muxing test _ 2018 _ total _ infor")
线上运行时 SparkSession 代码中参数写到spark节点
配置spark. hadoop. odps. runtime. end. point
#
Spark施行环境endpoints,请配置为所在region的Mak(captte VTC内网Endpoints.
yearshadoopdaysruntinesendpoint “ http://service.cn-sarcompute.aliyurnic.com/got
引用 jar 资源使用 spark. hadoop. odbs. cupid. resources
Ispark hadoop. oops cupic,resources= projectname ×x0. jar. projectnamexx1 . jar
< dependency >
<groupId>com. aliyun. odps</groupIdx
<artifact Id>cupid-sdk</artifact Id>
<version>${cupid. sdk. version}</version>
<scope>provided</scope>
</ dependency >
< dependency >
<groupId>com. aliyun. odps</groupId>
<artifact Id>hadoop-fs-oss</artifact Id>
<version>${cupid. sdk. version}</version>
</ dependency >
< dependency >
<groupId>com. aliyun. odps</groupId>
< artifactId >odps-spark-database _5(scala. binary. version)</ artifact1d ><version>${cupid. sdk. version}</version>
</ dependency >
三、DataWorks 模式
操作流程(操作演示):
1.创建 spark 节点
2.配置节点参数
3.测试运行
4.提交发布
Tips:
1.通过参数配置实现带入参数到 spark 程序
2.简单模式和标准模式下发布有差异