Google Cloud Dataflow 作业 - 拒绝拆分

Google Cloud Dataflow Job - Refusing to split

数据流作业失败并显示以下消息的最常见原因是什么:

The work item was attempted on these workers: wn-vlg-to-1vro-1606304136-11250335-91et-harness-n08k Root cause: The worker lost contact with the service.

我还在工作日志中观察到多个“拒绝拆分...”打印:

Refusing to split GroupedShuffleReader <dataflow_worker.shuffle.GroupedShuffleReader object at 0x7f6a231c4a90> at BZt9HwAB

job_id="2020-11-25_04_58_21-4901626503823103758"

Dataflow 作业因“根本原因:工作人员与服务失去联系”而失败的一个常见原因是您 运行 内存不足。

您可以使用像 [1] 这样的高级过滤器在 Stackdriver 日志中识别内存问题(也请查看 [2])。

可能的解决方案是使用管道选项 --numberOfWorkerHarnessThreads(或 --number_of_worker_harness_threads for Python)设置更高内存的工作机器类型,或降低处理的并行度。

[1]

resource.type="dataflow_step"
resource.labels.job_id="YOUR_JOB_ID"
severity>=WARNING
("thrashing=true" OR "OutOfMemoryError" OR "Out of memory" OR "Shutting down JVM")

[2] https://cloud.google.com/logging/docs/view/advanced-queries#getting-started