Google Cloud Dataflow 使用什么 java 运行时?java8 或 java11

What java runtime does Google Cloud Dataflow use?java8 or java11

Google Cloud Dataflow 基于apache beam.And beam 官方不支持java11。 但是当我 运行 GCP 上的数据流作业并检查该作业用作工作人员的 vm 实例时。 我发现容器镜像是“gcr.io/cloud-dataflow/v1beta3/beam-java11-batch:beam-2.23.0”。 那么数据流使用java11作为java运行时间是运行宁数据流吗? 为什么不使用 java8? 有错误的风险吗?

"spec": { "containers": [ { "args": [ "--physmem_limit_pct=70", "--log_file=/var/log/dataflow/boot-json.log", "--log_dir=/var/log/dataflow", "--work_dir=/var/opt/google/dataflow", "--tmp_dir=/var/opt/google/tmp", "--endpoint=https://dataflow.googleapis.com/" ], "image": "gcr.io/cloud-dataflow/v1beta3/beam-java11-batch:beam-2.23.0",

“Dataflow Runner”(Apache Beam 的一部分,将 Beam 管道转换为 Dataflow 的表示并提交作业)检测您用来提交作业的 Java 版本并尝试匹配它.因此,如果您使用 Java 11 启动管道,则选择的工作人员将是 Java 11.

您可以通过传递 --workerHarnessContainerImage 标志手动选择容器。 “支持”,因为很容易导致作业以 Dataflow 无法控制的方式失败。