apache/beam_flink1.10_job_serverApache Beam Flink Job Server镜像基于Apache Beam和Apache Flink技术栈构建,是部署和运行Apache Beam数据处理作业的专用服务器。该镜像作为Flink后端的作业执行载体,提供作业提交、执行、监控的完整生命周期管理,支持使用Beam SDK开发的批处理(Batch)和流处理(Streaming)任务在Flink集群上高效运行。
通过以下命令快速启动单节点Job Server:
bashdocker run -d \ -p 8099:8099 \ --name beam-flink-job-server \ -e FLINK_MASTER=localhost:8081 \ # 连接本地Flink集群JobManager -e DEFAULT_PARALLELISM=4 \ # 设置默认作业并行度 apache/beam-flink-job-server:latest
配合Flink集群部署的docker-compose配置:
yamlversion: '3.8' services: # Flink JobManager(需提前部署Flink集群) flink-jobmanager: image: flink:1.17.0 command: jobmanager environment: - JOB_MANAGER_RPC_ADDRESS=flink-jobmanager ports: - "8081:8081" # Beam Flink Job Server beam-flink-job-server: image: apache/beam-flink-job-server:latest depends_on: - flink-jobmanager ports: - "8099:8099" environment: - FLINK_MASTER=flink-jobmanager:8081 # 连接Flink JobManager - JOB_SERVER_PORT=8099 # 服务监听端口 - DEFAULT_PARALLELISM=2 # 默认并行度 - LOG_LEVEL=INFO # 日志级别
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
FLINK_MASTER | Flink集群JobManager地址(格式:host:port) | localhost:8081 |
JOB_SERVER_PORT | 作业服务器监听端口 | 8099 |
DEFAULT_PARALLELISM | 作业默认并行度(任务并行执行的slot数量) | 1 |
LOG_LEVEL | 日志输出级别(DEBUG/INFO/WARN/ERROR) | INFO |
FLINK_CONFIG_DIR | Flink配置文件目录(容器内路径) | /opt/flink/conf |
MAX_PARALLELISM | 作业最大并行度限制 | 10 |
支持通过命令行参数覆盖默认配置,示例:
bashdocker run apache/beam-flink-job-server:latest \ --flink-master flink-jobmanager:8081 \ # 指定Flink集群地址 --port 8099 \ # 指定服务端口 --default-parallelism 4 \ # 设置默认并行度 --log-level DEBUG # 开启DEBUG日志
通过Java Beam SDK提交作业至Job Server:
javaimport org.apache.beam.runners.flink.FlinkRunner; import org.apache.beam.sdk.Pipeline; import org.apache.beam.sdk.options.PipelineOptions; import org.apache.beam.sdk.options.PipelineOptionsFactory; import org.apache.beam.sdk.options.FlinkPipelineOptions; public class BeamJobSubmitter { public static void main(String[] args) { // 创建Pipeline配置 PipelineOptions options = PipelineOptionsFactory.create(); FlinkPipelineOptions flinkOptions = options.as(FlinkPipelineOptions.class); // 配置Job Server地址 flinkOptions.setRunner(FlinkRunner.class); flinkOptions.setJobServerAddress("[***]"); // 创建Pipeline并定义作业逻辑 Pipeline pipeline = Pipeline.create(flinkOptions); pipeline.apply("Sample Source", ...) // 输入源 .apply("Data Transformation", ...) // 数据转换 .apply("Sample Sink", ...); // 输出目标 // 提交作业并等待完成 pipeline.run().waitUntilFinish(); } }
通过Python Beam SDK提交作业:
pythonimport apache_beam as beam from apache_beam.options.pipeline_options import PipelineOptions options = PipelineOptions([ '--runner=FlinkRunner', '--job_server_address=[***] ]) with beam.Pipeline(options=options) as p: (p | 'Read from Source' >> beam.io.ReadFromText('input.txt') | 'Transform Data' >> beam.Map(lambda x: x.upper()) | 'Write to Sink' >> beam.io.WriteToText('output.txt'))

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