MaxCompute Spark 使用和常见问题

一. MaxCompute Spark 介绍

MaxCompute Spark是MaxCompute提供的兼容开源的Spark计算服务。它在统一的计算资源和数据集权限体系之上,提供Spark计算框架,支持用户以熟悉的开发使用方式提交运行Spark作业,以满足更丰富的数据处理分析场景。

1.1 关键特性

  • 支持原生多版本Spark作业
    • 社区原生Spark运行在MaxCompute里,完全兼容Spark的API,支持多个Spark版本同时运行
  • 统一的计算资源
    • 像MaxCompute SQL/MR等任务类型一样,运行在MaxCompute项目开通的统一计算资源中
  • 统一的数据和权限管理
    • 遵循MaxCompute项目的权限体系,在访问用户权限范围内安全地查询数据
  • 与开源系统相同的使用体验
    • 提供原生的开源实时Spark UI和查询历史日志的功能

1.2 系统结构

  • 原生Spark通过MaxCompute Cupid平台能够在MaxCompute中运行

1.3 约束与限制

  • 目前MaxCompute Spark支持以下适用场景:
    • 离线计算场景:GraphX、Mllib、RDD、Spark-SQL、PySpark等
    • Streaming场景
    • 读写MaxCompute Table
    • 引用MaxCompute中的文件资源
    • 读写VPC环境下的服务,如RDS、Redis、HBase、ECS上部署的服务等
    • 读写OSS非结构化存储
  • 使用限制
    • 不支持交互式类需求Spark-Shell、Spark-SQL-Shell、PySpark-Shell等
    • 不支持访问MaxCompute外部表,函数和UDF
    • 只支持Local模式和Yarn-cluster模式运行

二. 开发环境搭建

2.1 运行模式

  • 通过Spark客户端提交
    • Yarn-Cluster模式,提交任务到MaxCompute集群中
    • Local模式
  • 通过Dataworks提交
    • 本质上也是Yarn-Cluster模式,提交任务到MaxCompute集群中

2.2 通过客户端提交

2.2.1 Yarn-Cluster模式

  • 下载MC Spark客户端
    • Spark 1.6.3
    • Spark 2.3.0
  • 环境变量配置
  • 参数配置
    • 将$SPARK_HOME/conf/spark-defaults.conf.template 重命名为 spark-defaults.conf
    • 参数配置参考下文
  • 准备项目工程
git clone https://github.com/aliyun/MaxCompute-Spark.git
cd spark-2.x
mvn clean package
  • 任务提交
// bash环境
cd $SPARK_HOME
bin/spark-submit --master yarn-cluster --class com.aliyun.odps.spark.examples.SparkPi \
/path/to/MaxCompute-Spark/spark-2.x/target/spark-examples_2.11-1.0.0-SNAPSHOT-shaded.jar

// 在windows环境提交的命令
cd $SPARK_HOME/bin
spark-submit.cmd --master yarn-cluster --class com.aliyun.odps.spark.examples.SparkPi
\path\to\MaxCompute-Spark\spark-2.x\target\spark-examples_2.11-1.0.0-SNAPSHOT-shaded.jar

2.2.2 Local模式

  • 与Yarn Cluster模式类似,用户首先需要做以上准备工作
  • 任务提交
## Java/Scala
cd $SPARK_HOME
./bin/spark-submit --master local[4] --class com.aliyun.odps.spark.examples.SparkPi \
/path/to/odps-spark-examples/spark-examples/target/spark-examples-2.0.0-SNAPSHOT-shaded.jar

## PySpark
cd $SPARK_HOME
./bin/spark-submit --master local[4] \
/path/to/odps-spark-examples/spark-examples/src/main/python/odps_table_rw.py
  • IDEA调试注意
    • IDEA运行Local模式是不能直接引用spark-defaults.conf里的配置,需要手动在代码里指定相关配置
    • 一定要注意需要在IDEA里手动添加MaxCompute Spark客户端的相关依赖(jars目录),否则会出现以下报错:the value of spark.sql.catalogimplementation should be one of hive in-memory but was odps

2.3 通过DataWorks提交

2.3.1 资源上传

  • 本质上MC Spark节点的配置对应于spark-submit命令的参数和选项

  • 上传资源:
    • 0~50MB:可以直接在DataWorks界面创建资源并上传
    • 50MB~500MB:可以先利用MaxCompute客户端(CMD)上传,然后在DataWorks界面添加到数据开发
  • 资源引用:
    • 资源提交后,可以在DataWorks Spark节点界面选择需要的资源(jar/python/file/archive)
    • 任务运行时:资源文件默认会上传到Driver和Executor的当前工作目录

2.3.2 参数和配置

  • Spark 配置项:对应于spark-submit命令的--conf选项
    • accessid,accesskey,projectname,endpoint,runtime.e
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值