最近更新时间:2025-05-13 18:05:02
本文介绍如何通过客户端工具进行Spark作业开发。
Java类型作业
本文旨在带您快速熟悉操作流程,为您提供了一个作业示例,您可以直接下载以备后续步骤使用。
点击 spark-examples_2.12-3.3.1.jar下载作业示例,该作业为计算圆周率。
请将作业示例上传至KS3,具体步骤详见:文件上传。
单击ksc-serverless-tool.tar.gz,下载客户端。
执行以下命令,解压并安装。
tar -zxvf ksc-serverless-tool.tar.gz
执行以下命令,修改connection.properties中的配置。
vim ksc-serverless-tool.tar.gz/conf/connection.properties
推荐按照如下内容对文件进行配置,参数格式为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,获取操作详见:获取AK/SK |
accessKeySecret | 是 | 执行Spark作业使用的金山云账号或RAM用户的AccessKey Secret |
Region | 是 | 地域ID,目前仅支持北京:cn-beijing-6 |
workspaceId | 是 | 工作空间ID |
Endpoint | 是 | 服务地址 |
服务接入点
地域名称 | 地域ID | 公网接入地址 | VPC接入地址 |
华北1(北京) | cn-beijing-6 |
执行以下命令,进入客户端工具目录。
cd ksc-serverless-tool
请按照以下格式提交作业:
./bin/ksc-serverless-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
您也可以使用DataFrame.py和employee.csv,单击DataFrame.py和employee.csv下载测试文件,然后上传至KS3
DataFrame.py文件是一段使用Apache Spark框架进行KS3上数据处理的代码
employee.csv文件中定义了一个包含员工姓名、部门和薪水的数据列表
./bin/ksc-serverless-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>/archive2.zip#envip | 否 | Spark作业需要引用的archive包资源,仅支持KS3资源,多个文件使用逗号(,)分隔 |
--packages | KS3://<yourBucket>/file1.jar,KS3://<yourBucket>/file2.jar | 否 | Spark作业指定外部依赖包,仅支持KS3资源,多个文件使用逗号(,)分隔 |
--conf | spark.tags.key=value | 否 | Spark作业自定义参数 |
--status | spark-java-job-2024081917xxxx | 否 | 输入作业ID,查看Spark作业状态 |
--kill | spark-java-job-2024081917xxxx | 否 | 输入作业ID,终止Spark作业 |
--cache-file Archive | ks3://xxx/xxx.tar.gz#pyspark_env.zip | 否 | 用于缓存加速archive资源 |
--high-priority | p0 | 否 | 默认优先级为p1, 设置为p0的作业将高优插入执行 |
非开源spark-submit工具的参数。
参数名称 | 示例值 | 说明 |
--list | 5 | 查询作业列表,不指定则默认为10 |
--detail | spark-java-job-2024081917xxxx | 输入作业ID,查看作业详情 |
不支持的开源spark-submit工具的参数如下:
--deploy-mode
--master
--proxy-user
--repositories
--keytab
--principal
--total-executor-cores
--driver-library-path
--driver-class-path
--supervise
--verbose
查询Spark作业详情
./bin/ksc-serverless-tool --detail spark-java-job-20240819172832
查询Spark作业状态
./bin/ksc-serverless-tool --status spark-java-job-2024081917xxxx
./bin/ksc-serverless-tool --kill spark-java-job-20240819172832
./bin/ksc-serverless-tool --list 2 #展示两条
步骤七:查询Spark Driver日志
默认查询最后 200 行
./bin/ksc-serverless-tool --logs spark-java-job-2024081917xxxx
查询最后N行
./bin/ksc-serverless-tool --logs spark-java-job-2024081917xxxx --tail 200
跟随查询
./bin/ksc-serverless-tool --logs spark-java-job-2024081917xxxx --follow
纯净模式