【发布时间】:2020-02-07 04:07:41
【问题描述】:
我有一个数据流作业,它从 3 个 PubSub 主题中读取 JSON,将它们合并为一个,应用一些转换并保存到 BigQuery。
我正在使用具有以下配置的 GlobalWindow。
.apply(Window.<PubsubMessage>into(new GlobalWindows()).triggering(AfterWatermark.pastEndOfWindow()
.withEarlyFirings(AfterFirst.of(AfterPane.elementCountAtLeast(20000),
AfterProcessingTime.pastFirstElementInPane().plusDelayOf(durations))))
.discardingFiredPanes());
作业正在使用以下配置运行
Max Workers : 20
Disk Size: 10GB
Machine Type : n1-standard-4
Autoscaling Algo: Throughput Based
我面临的问题是,在处理了几条消息(大约 80k)之后,作业停止从 PubSub 读取消息。其中一个主题中积压了近 1000 万条消息,但数据流作业没有读取消息或自动缩放。
我还检查了每个工作人员的 CPU 使用率,并且在初始爆发后也徘徊在个位数。
我已尝试更改机器类型和最大工作人员配置,但似乎没有任何效果。
我应该如何解决这个问题?
【问题讨论】:
-
您是否可以重新启动管道并检查问题是否反复出现?
-
是的,我尝试重新启动作业 5 次,但每次都卡在 50-60K 标记处。
标签: google-cloud-platform google-cloud-dataflow google-cloud-pubsub