使用PubsubIO的Java OutOfMemoryError

时间:2018-06-14 17:54:01

标签: google-cloud-dataflow google-cloud-pubsub

我在Java中编写一个简单的Dataflow管道: PubsubIO - > ConvertToTableRowDoFn - > BigQueryIO

管道正在运行 - 数据按预期到达BigQuery - 但我在Dataflow工作日志中看到OutOfMemoryErrors。

我尝试过的一个实验是通过添加Thread.sleep(100)来减慢ConvertToTableRowDoFn的速度。我认为这会使BigQueryIO的批量更小,但令我惊讶的是,这使得OutOfMemoryErrors更频繁!

这让我觉得PubsubIO中的某些东西正在快速读取数据或者做太多的缓冲。有关如何调查此问题的任何提示,或有关PubsubIO如何在Google Dataflow环境中缓冲的提示?

1 个答案:

答案 0 :(得分:1)

重新编译的FILE_TRIGGERING_RECORD_COUNT = 100000而不是500000的光束,此后没有看到任何OOM。