EMR on VKE服务提供Spark的预置镜像仓库,便于用户基于这些镜像做二次开发。
说明
1.EMR服务提供的对外镜像列表,设置有用户名和密码,可联系EMR服务工程师获取。
2.EMR提供的镜像列表,由于网络的限制,默认只支持在火山引擎的ECS机器上可以访问,包括在ECS机器部署的Pod服务或其他服务。
关于Spark提供如下场景的镜像仓库:
emr-vke-public-{region}.cr.volces.com/emr/spark
:包含Spark及其所需依赖的镜像,以及在该基础镜像之上,提供访问StarRocks的jar包,用于访问StarRocks集群的库表,是火山引擎自研的connector,可以直读直写StarRocks的表。其中{region}
是Spark集群所在的region英文名。目前支持region地区有华北、华东、华南、亚太东南(柔佛)Region(中文名称) | Region |
---|---|
华北 | cn-beijing |
华东 | cn-shanghai |
华南 | cn-guangzhou |
亚太东南(柔佛) | ap-southeast-1 |
同时,不同的EMR 产品版本,提供的Spark版本、操作系统版本可能也有所不同。通过镜像Tag来区分:{spark.version}--py{python.version}-ubuntu{ubuntu.version}[-{build.version}]-{emr.version}
参数 | 说明 |
---|---|
| Spark的版本号。示例:3.5.1 |
| Python版本。示例:3.9 |
| Ubuntu系统的版本。示例:20.04 |
| EMR内部跟踪Spark源码信息的版本号,用户无需关心。 |
| EMR on VKE服务的产品版本。示例1.5.0 |
支持的Tag列表:
镜像名称 | 大小 | 备注依赖包 |
---|---|---|
emr-vke-qa-cn-beijing.cr.volces.com/emr/spark:3.5.1-py3.9-ubuntu20.04-57 | 1.68GiB | Java:1.8 |
emr-vke-public-cn-beijing.cr.volces.com/emr/spark:3.5.1-1.0.0.87-1.4.0 | 1.68GiB | Java:1.8 |
镜像名称 | 大小 | 备注依赖包 |
---|---|---|
emr-vke-public-cn-shanghai.cr.volces.com/emr/spark:3.5.1-py3.9-ubuntu20.04-57-1.5.0 | 1.68GiB | Java:1.8 |
镜像名称 | 大小 | 备注依赖包 |
---|---|---|
emr-vke-public-cn-guangzhou.cr.volces.com/emr/spark:3.5.1-py3.9-ubuntu20.04-57-1.5.0 | 1.68GiB | Java:1.8 |
镜像名称 | 大小 | 备注依赖包 |
---|---|---|
emr-vke-public-ap-southeast-1.cr.volces.com/emr/spark:3.5.1-py3.9-ubuntu20.04-57-1.5.0 | 1.68GiB | Java:1.8 |
下面以直接使用为例进行解释,也可以参考使用自定义 Docker 镜像运行作业。
您可以使用下述命令生成秘钥:
kubectl create secret docker-registry my-docker-secret --docker-server={DOCKER_REGISTRY_SERVER} --docker-username={DOCKER_USER} --docker-password={DOCKER_PASSWORD} -n {YOUR_NAMESPACE}
其中
my-docker-secret
:秘钥名称。 用于下面Yaml文件中imagePullSecrets
的值。YOUR_NAMESPACE
:执行Ray作业的命名空间。DOCKER_REGISTRY_SERVER
、DOCKER_USER
、DOCKER_PASSWORD
:docker镜像仓库地址、用户名和密码,可以联系下EMR服务工程师获取相关参数值。以test.yaml文件示例
apiVersion: "sparkoperator.k8s.io/v1beta2" kind: SparkApplication metadata: name: spark-pi spec: type: Scala sparkVersion: 3.5.1 mainClass: org.apache.spark.examples.SparkPi mainApplicationFile: "local:///opt/spark/examples/jars/spark-examples_2.12-3.5.1.jar" arguments: - "100" driver: cores: 1 coreLimit: 1000m memory: 1g image: emr-vke-public-cn-beijing.cr.volces.com/emr/spark-sr:3.5.1-1.0.0.87-1.4.0 # 指定 Driver 镜像 executor: cores: 1 coreLimit: 1000m memory: 1g instances: 1 image: emr-vke-public-cn-beijing.cr.volces.com/emr/spark-sr:3.5.1-1.0.0.87-1.4.0 # 指定 executor 镜像 imagePullSecrets: - my-docker-secret # 指定 vke 下载 docker 镜像的秘钥
提交RayJob:
kubectl apply -f test.yaml -n {YOUR_NAMESPACE}