本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Apache Beam 是一个统一的编程模型,用于定义批处理和流处理数据并行处理管道,同时提供特定语言的 SDK 用于构建管道,以及在分布式处理后端执行管道的 Runner。本镜像基于 Python 3.8 环境,预装 Apache Beam Python SDK,旨在为开发者提供便捷、一致的环境,用于开发、测试和运行基于 Python 的 Beam 数据处理管道。
可通过配置将管道提交至多种分布式处理后端执行:
apache-beam[gcp] 等可选扩展)从 Docker Hub 拉取镜像(假设镜像名为 apache/beam-sdk-python3.8):
docker pull apache/beam-sdk-python3.8:latest
运行本地目录中的 Beam 管道脚本,使用 DirectRunner 在容器内执行:
docker run -it --rm \ -v $(pwd):/app \ # 挂载本地代码目录到容器内/app -w /app \ # 设置工作目录为/app -e BEAM_RUNNER=DirectRunner \ # 指定使用DirectRunner apache/beam-sdk-python3.8:latest \ python your_pipeline_script.py --input input.txt --output output/
需提前配置 Spark 集群地址,并通过环境变量或命令行参数传递:
docker run -it --rm \ -v $(pwd):/app \ -w /app \ -e BEAM_RUNNER=SparkRunner \ -e SPARK_MASTER_URL=spark://spark-master:7077 \ # Spark集群Master地址 apache/beam-sdk-python3.8:latest \ python your_pipeline_script.py --input hdfs:///input/data --output hdfs:///output/result
结合 Spark 集群的本地开发环境(使用 Docker Compose 编排 Beam 容器和 Spark 集群):
version: '3' services: beam-pipeline: image: apache/beam-sdk-python3.8:latest volumes: - ./pipeline:/app working_dir: /app environment: - BEAM_RUNNER=SparkRunner - SPARK_MASTER_URL=spark://spark-master:7077 depends_on: - spark-master - spark-worker spark-master: image: bitnami/spark:3.3 environment: - SPARK_MODE=master ports: - "7077:7077" - "8080:8080" spark-worker: image: bitnami/spark:3.3 environment: - SPARK_MODE=worker - SPARK_MASTER_URL=spark://spark-master:7077
启动服务:
docker-compose up -d docker-compose exec beam-pipeline python your_pipeline_script.py
| 环境变量名 | 描述 | 可选值 | 默认值 |
|---|---|---|---|
BEAM_RUNNER | 指定执行管道的Runner类型 | DirectRunner, SparkRunner, FlinkRunner, DataflowRunner, JetRunner | DirectRunner |
SPARK_MASTER_URL | Spark集群Master地址(仅SparkRunner需配置) | 如 spark://host:port | - |
FLINK_CLUSTER_URL | Flink集群JobManager地址(仅FlinkRunner需配置) | 如 flink-jobmanager:8081 | - |
GOOGLE_APPLICATION_CREDENTIALS | GCP认证密钥路径(仅DataflowRunner需配置) | 容器内密钥文件路径 | - |
PYTHONPATH | Python模块搜索路径 | 如 /app/custom_modules | /app |
Beam 管道脚本通常通过命令行参数接收配置,以下为典型参数说明(以WordCount示例为例):
# your_pipeline_script.py import argparse from apache_beam import Pipeline def run(): parser = argparse.ArgumentParser() parser.add_argument('--input', help='Input file path') parser.add_argument('--output', help='Output directory path') args = parser.parse_args() with Pipeline() as p: (p | 'Read' >> ReadFromText(args.input) | 'Split' >> FlatMap(lambda x: x.split()) | 'Count' >> Count.PerElement() | 'Write' >> WriteToText(args.output)) if __name__ == '__main__': run()
执行时通过命令行传递 --input 和 --output 参数,如 4.2.1 中的示例。
requirements.txt,并在容器启动时安装:
docker run -it --rm -v $(pwd):/app -w /app apache/beam-sdk-python3.8:latest \ bash -c "pip install -r requirements.txt && python your_pipeline_script.py"
-v 挂载至容器内,分布式存储(如HDFS、GCS)需确保容器网络可访问存储服务。apache-beam[spark]),可通过镜像标签选择包含对应扩展的版本(如 apache/beam-sdk-python3.8:with-spark)。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429