MaxCompute Spark开发指南

0. 概述

本文档面向需要使用MaxCompute Spark进行开发的用户使用。本指南主要适用于具备有Spark开发经验的开发人员。

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

本文将重点介绍MaxCompute Spark能够支撑的应用场景,同时说明开发的依赖条件和环境准备,重点对Spark作业开发、提交到MaxCompute集群执行、诊断进行介绍。

1. 前提条件

MaxCompute Spark是阿里云提供的Spark on MaxCompute的解决方案,能够让Spark应用运行在托管的MaxCompute计算环境中。为了能够在MaxCompute环境中安全地运行Spark作业,MaxCompute提供了以下SDK和MaxCompute Spark定制发布包。

SDK定位于开源应用接入MaxCompute SDK:
提供了集成所需的API说明以及相关功能Demo,用户可以基于项目提供的Spark-1.x以及Spark-2.x的example项目构建自己的应用,并且提交到MaxCompute集群上。
MaxCompute Spark客户端发布包:
集成了MaxCompute认证功功能,作为客户端工具,用于通过Spark-submit方式提交作业到MaxCompute项目中运行,目前提供了面向Spark1.x和Spark2.x的2个发布包:spark-1.6.3和spark-2.3.0 SDK在开发时,可以通过配置Maven依赖进行引用。Spark客户端需要根据开发的Spark版本,提前下载。如,需要开发Spark1.x应用,应下载spark-1.6.3版本客户端;如需开发Spark2.x应用,应下载spark-2.3.0客户端。

2. 开发环境准备

2.1 Maxcompute Spark客户端准备

MaxCompute Spark发布包:集成了MaxCompute认证功功能,作为客户端工具,用于通过Spark-submit方式提交作业到MaxCompute项目中运行,目前提供了面向Spark1.x和Spark2.x的2个发布包:

请根据需要开发的Spark版本,选择合适的版本下载并解压Maxcompute Spark发布包。

2.2 设置环境变量

JAVA_HOME设置

# 尽量使用JDK 1.7+ 1.8+ 最佳
export JAVA_HOME=/path/to/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

SPARK_HOME设置

export SPARK_HOME=/path/to/spark_extracted_package
export PATH=$SPARK_HOME/bin:$PATH

2.3 设置Spark-defaults.conf

在 $SPARK_HOME/conf 
路径下存在spark-defaults.conf.template文件,这个可以作为spark-defaults.conf的模版,需要在该文件中设置MaxCompute相关的账号信息后,才可以提交Spark任务到MaxCompute。默认配置内容如下,将空白部分根据实际的账号信息填上即可,其余的配置可以保持不变。

# MaxCompute账号信息
spark.hadoop.odps.project.name =
spark.hadoop.odps.access.id =
spark.hadoop.odps.access.key =
# 以下配置保持不变
spark.sql.catalogImplementation=odps
spark.hadoop.odps.task.major.version = cupid_v2
spark.hadoop.odps.cupid.container.image.enable = true
spark.hadoop.odps.cupid.container.vm.engine.type = hyper
spark.hadoop.odps.end.point = http://service.cn.maxcompute.aliyun.com/api
spark.hadoop.odps.runtime.end.point = http://service.cn.maxcompute.aliyun-inc.com/api

3. 访问MaxCompute表所需依赖

若作业需要访问MaxCompute表,需要依赖odps-spark-datasource模块,本节介绍如何把该依赖编译安装到本地maven仓库;若无需访问可直接跳过。

 #git clone git@github.com:aliyun/aliyun-cupid-sdk.git

  1. 编译模块

#cd ${path to aliyun-cupid-sdk}
#git checkout 3.3.2-public
// 编译并安装cupid-sdk
#cd ${path to aliyun-cupid-sdk}/core/cupid-sdk/
#mvn clean install -DskipTests
// 编译并安装datasource。依赖cupid-sdk
// for spark-2.x
# cd ${path to aliyun-cupid-sdk}/spark/spark-2.x/datasource
# mvn clean install -DskipTests
// for spark-1.x
# cd ${path to aliyun-cupid-sdk}/spark/spark-1.x/datasource
#mvn clean install -DskipTests

  • 添加依赖

<!-- Spark-1.x请依赖此模块 -->
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-spark-datasource_2.10</artifactId>
<version>3.3.2-public</version>
</dependency>
<!-- Spark-2.x请依赖此模块 -->
<dependency>
  <groupId>com.aliyun.odps</groupId>
  <artifactId>odps-spark-datasource_2.11</artifactId>
  <version>3.3.2-public</version>
</dependency>

 4. OSS依赖

若作业需要访问OSS,直接添加以下依赖即可

 <dependency>
    <groupId>com.aliyun.odps</groupId>
    <artifactId>hadoop-fs-oss</artifactId>
    <version>3.3.2-public</version>
</dependency>

 5. 应用开发

MaxCompute产品提供了两个应用构建的模版,用户可以基于此模版进行开发,最后统一构建整个项目后用生成的应用包即可直接提交到Ma

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值