本文介绍如何获取SDK以及使用SDK提交Spark作业。
获取SDK
您可以在Maven Repository中获取数据湖分析最新的SDK包,获取地址Maven SDK地址。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-openanalytics-open</artifactId>
<version>1.0.13</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.4.6</version>
</dependency>
使用SDK提交Spark作业
- 获取用户的AccessKey,详情请参见获取AccessKey。
- 获取当前地域的RegionId,阿里云各地域的RegionId请参见地域和可用区。
- 确定执行任务的虚拟集群名称和JSON内容,您可以首先尝试在控制台提交作业,确定输入和返回的内容。
使用SDK提交作业的代码如下所示:
/** * 提交一个作业到数据湖分析Serverless Spark * * @param regionId 使用的数据湖分析的REGION_ID * @param accessKeyId 用户AccessKeyId * @param accessKeySecret 用户AccessKeySecret * @param virtualClusterName 数据湖分析虚拟集群名称 * @param jobConfig 提交Spark作业的描述文件,需要是JSON格式 * @return Spark JobId, 提交作业成功, 返回作业的ID, 用于后续的状态跟踪 * @throws ClientException 提交作业可能因为网络原因等抛出错误 */ public String submitSparkJob(String regionId, String accessKeyId, String accessKeySecret, String virtualClusterName, String jobConfig) throws ClientException { // 初始化阿里云平台开发Client DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret); IAcsClient client = new DefaultAcsClient(profile); // 初始化Request, 填入集群名称和作业内容 SubmitSparkJobRequest request = new SubmitSparkJobRequest(); request.setVcName(virtualClusterName); request.setConfigJson(jobConfig); // 提交作业, 返回Spark作业的JobId SubmitSparkJobResponse response = client.getAcsResponse(request); return response.getJobId(); }
注意JobConfig
是一个合法的JSON格式的String,建议您手动在控制台执行一些小批量的作业,然后通过SDK来自动化提交核心业务。