全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

通过Spark-submit命令行工具提交Spark任务

最近更新时间:2024-09-20 17:11:59

本文以KEC连接KMR Serverless Spark为例,介绍如何通过KMR Serverless spark-submit命令行工具进行Spark任务开发。

前提条件

如果使用IAM用户(子账号)提交Spark任务,需要赋予子账号相应KMR权限(KMRFullAccess)和KS3权限,KS3权限建议您赋予子账号所需使用Bucket权限,操作步骤详见 存储空间权限分离

子用户授权动作操作步骤详见为子用户授权

操作步骤

步骤一:下载并安装KMR Serverless spark-submit工具

  1. 单击ksc-spark-tool_0.0.0-65.tar.gz,下载安装包。

  2. 执行以下命令,解压并安装KMR Serverless spark-submit工具。

tar -zxvf ksc-spark-tool_0.0.0-65.tar.gz

步骤二:配置相关参数

  1. 执行以下命令,修改connection.properties中的配置。

vim ksc-spark-tool/conf/connection.properties
  1. 推荐按照如下内容对文件进行配置,参数格式为key=value,示例如下。

[Properties]
AccessKeyId ="****"
AccessKeySecret ="*****"
Region ="cn-beijing-6"
WorkspaceId ="xxx"
Endpoint = "http://kmr.cn-beijing-6.api.ksyun.com"

涉及参数说明如下表所示。

参数

是否必填

说明

accessKeyId

执行Spark任务使用的金山云账号或RAM用户的AccessKey ID。

accessKeySecret

执行Spark任务使用的金山云账号或RAM用户的AccessKey Secret。

Region

地域ID。本文以北京地域为例。

workspaceId

KMR Serverless Spark工作空间ID。

Endpoint

KMR Serverless Spark服务地址。

服务接入点

地域名称

地域ID

公网接入地址

VPC接入地址

华北1(北京)

cn-beijing-6

kmr.cn-beijing-6.api.ksyun.com

kmr.cn-beijing-6.inner.api.ksyun.com

步骤三:提交Spark任务

  1. 执行以下命令,进入KMR ksc-spark-tool工具目录。

cd ksc-spark-tool
  1. 请按照以下格式提交任务。

Java类型任务

本文示例使用的spark-examples_2.12-3.3.1.jar,您可以单击spark-examples_2.12-3.3.1.jar,直接下载测试JAR包,然后上传JAR包至KS3。该JAR包是Spark自带的一个简单示例,用于计算圆周率π的值。

./bin/ksc-spark-tool  --name SparkPi \
--num-executors 5 \
--driver-cores 1 \
--driver-memory 1g \
--executor-cores 2 \
--executor-memory 2g \
--class org.apache.spark.examples.SparkPi \
 ks3://<yourBucket>/path/to/spark-examples_2.12-3.3.1.jar \
1000
PySpark类型任务

本文示例使用的DataFrame.py和employee.csv,您可以单击DataFrame.pyemployee.csv,直接下载测试文件,然后上传JAR包至KS3。

  • DataFrame.py文件是一段使用Apache Spark框架进行KS3上数据处理的代码。

  • employee.csv文件中定义了一个包含员工姓名、部门和薪水的数据列表。

./bin/ksc-spark-tool --name Spark-test \
--num-executors 5 \
--driver-cores 1 \
--driver-memory 1g \
--executor-cores 2 \
--executor-memory 2g \
--conf spark.tags.key=value \
--files ks3://<yourBucket>/path/to/employee.csv \
ks3://<yourBucket>/path/to/DataFrame.py \
employee.csv

相关参数说明如下:

  • 兼容开源spark-submit工具的参数。

参数名称

示例值

是否必填

说明

--class

org.apache.spark.examples.SparkPi

指定Spark任务的入口类名(Java程序),Python程序无需此参数。

--num-executors

10

必填项,Spark任务的Executor数量。

或者--conf spark.executor.instances 覆盖

--driver-cores

1

必填项,Spark任务的Driver核数。

或者--conf spark.driver.cores 覆盖

--driver-memory

4g

必填项,Spark任务的Driver内存。

或者--conf spark.driver.memory 覆盖

--executor-cores

1

必填项,Spark任务的Executor核数。

或者--conf sparkexecutor.cores 覆盖

--executor-memory

1g

必填项,Spark任务的Executor内存。

或者--conf spark.executor.memory 覆盖

--files

ks3://<yourBucket>/file1,ks3://<yourBucket>/file2

Spark任务需要引用的资源文件,仅支持KS3资源,多个文件使用逗号(,)分隔。

--py-files

ks3://<yourBucket>/file1.py,ks3://<yourBucket>/file2.py

Spark任务需要引用的Python脚本,仅支持KS3资源,多个文件使用逗号(,)分隔。该参数仅对PySpark程序生效。

--jars

ks3://<yourBucket>/file1.jar,ks3://<yourBucket>/file2.jar

Spark任务需要引用的JAR包资源,仅支持KS3资源,多个文件使用逗号(,)分隔。

--archives

ks3://<yourBucket>/archive.tar.gz#env,ks3://<yourBucket>/archive2.zip

Spark任务需要引用的archive包资源,仅支持KS3资源,多个文件使用逗号(,)分隔。

--packages

KS3://<yourBucket>/file1.jar,KS3://<yourBucket>/file2.jar

Spark任务运行的队列名称,需与KMR Serverless Spark工作空间队列管理中的队列名称保持一致。

--conf

spark.tags.key=value

Spark任务自定义参数。

--status

spark-java-job-20240819172832

查看Spark任务状态。

--kill

spark-java-job-20240819172832

终止Spark任务。

  • 非开源spark-submit工具的参数。

参数名称

示例值

说明

--list

5

不带参数默认是10

--detail

spark-java-job-20240819172832

查看Spark任务详情。

  • 不支持的开源spark-submit工具的参数如下:

    • --deploy-mode

    • --master

    • --proxy-user

    • --repositories

    • --keytab

    • --principal

    • --total-executor-cores

    • --driver-library-path

    • --driver-class-path

    • --supervise

    • --verbose

步骤四:查询Spark任务

查询Spark任务详情
./bin/ksc-spark-tool --detail spark-java-job-20240819172832
查询Spark任务状态
./bin/ksc-spark-tool --status  spark-java-job-20240819172832
终止Spark任务
./bin/ksc-spark-tool --kill spark-java-job-20240819172832
查询workspace下任务列表
./bin/ksc-spark-tool --list  2  #展示两条

步骤五:查询Spark Driver日志

默认查询最后 200 行
./bin/ksc-spark-tool --logs spark-java-job-20240819172832
查询最后N行
./bin/ksc-spark-tool --logs spark-java-job-20240819172832 --tail 200
跟随查询
./bin/ksc-spark-tool --logs spark-java-job-20240819172832 --follow

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈