apache/spark-connect-swift本Docker镜像提供预配置环境,旨在简化Apache Spark与Swift存储服务的连接流程。通过集成Spark-Swift连接器,消除手动配置依赖的复杂性,使开发和运维人员能够快速部署支持Swift数据访问的Spark环境,专注于数据处理逻辑而非连接配置。
通过以下命令启动镜像,替换环境变量为实际Swift认证信息和Spark配置:
bashdocker run -d \ -e SWIFT_AUTH_URL="[***]" \ -e SWIFT_USERNAME="spark-service-account" \ -e SWIFT_PASSWORD="secure-auth-password" \ -e SWIFT_TENANT_NAME="service-tenant" \ -e SPARK_MASTER="local[*]" \ --name spark-swift-connector \ apache-spark-connect-swift:latest
创建docker-compose.yml文件实现多容器协同部署:
yamlversion: '3.8' services: spark-swift: image: apache-spark-connect-swift:latest container_name: spark-swift-connector environment: - SWIFT_AUTH_URL=[***] - SWIFT_USERNAME=spark-user - SWIFT_PASSWORD=P@ssw0rd123 - SWIFT_TENANT_NAME=analytics-tenant - SWIFT_REGION=RegionOne - SPARK_MASTER=spark://spark-master:7077 - SPARK_EXECUTOR_MEMORY=2g - SPARK_DRIVER_MEMORY=1g volumes: - ./spark-jobs:/opt/spark/jobs # 挂载本地Spark作业目录 - ./spark-logs:/var/log/spark # 挂载日志目录 depends_on: - spark-master restart: unless-stopped spark-master: image: bitnami/spark:latest container_name: spark-master environment: - SPARK_MODE=master ports: - "7077:7077" - "8080:8080"
启动命令:docker-compose up -d
| 环境变量名 | 描述 | 示例值 |
|---|---|---|
SWIFT_AUTH_URL | Swift认证服务URL | [***] |
SWIFT_USERNAME | Swift访问用户名 | spark-service-account |
SWIFT_PASSWORD | Swift用户认证密码 | secure-password-123 |
SWIFT_TENANT_NAME | Swift租户名称(Keystone v2) | analytics-tenant |
SPARK_MASTER | Spark集群Master地址 | local[*]或spark://master:7077 |
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
SWIFT_REGION | Swift存储区域 | RegionOne |
SWIFT_CONTAINER | 默认Swift容器名称 | spark-data |
SPARK_EXECUTOR_MEMORY | Spark执行器内存配置 | 1g |
SPARK_DRIVER_MEMORY | Spark驱动程序内存配置 | 512m |
SPARK_APP_NAME | Spark应用名称标识 | spark-swift-connector-app |
进入运行中的容器:
bashdocker exec -it spark-swift-connector bash
启动Spark Shell:
bashspark-shell
读取Swift中的CSV文件(假设Swift容器data-container中有user-data.csv):
scalaval df = spark.read .format("csv") .option("header", "true") .option("inferSchema", "true") .load("swift2d://data-container.swift/user-data.csv") // 显示数据 df.show(10)
写入数据到Swift:
scaladf.write .format("parquet") .mode("overwrite") .save("swift2d://data-container.swift/processed-user-data")
注意:
swift2d为连接器协议标识,具体协议名称可能因连接器版本不同略有差异,需参考镜像内置连接器文档。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务