【发布时间】:2019-11-11 09:35:16
【问题描述】:
我将 Apache Beam 2.13.0 与 GCP Dataflow 运行器一起使用。
我在从批处理管道流式传输到 BigQuery 时遇到问题:
PCollection<BigQueryInsertError> stageOneErrors =
destinationTableSelected
.apply("Write BQ Attempt 1",
BigQueryIO.<KV<TableDestination, TableRow>>write()
.withMethod(STREAMING_INSERTS)
.to(new KVTableDestination())
.withFormatFunction(new KVTableRow())
.withExtendedErrorInfo()
.withFailedInsertRetryPolicy(InsertRetryPolicy.neverRetry())
.withCreateDisposition(CreateDisposition.CREATE_NEVER)
.withWriteDisposition(WriteDisposition.WRITE_APPEND))
.getFailedInsertsWithErr();
错误:
Shutting down JVM after 8 consecutive periods of measured GC thrashing.
Memory is used/total/max = 15914/18766/18766 MB,
GC last/max = 99.17/99.17 %, #pushbacks=0, gc thrashing=true.
Heap dump not written.
相同的代码在流模式下正确工作(如果省略了显式方法设置)。
该代码适用于相当小的数据集(少于 200 万条记录)。超过 250 万失败。
从表面上看,它似乎与此处描述的问题类似:Shutting down JVM after 8 consecutive periods of measured GC thrashing
创建一个单独的问题以添加更多详细信息。
我能做些什么来解决这个问题吗?看起来问题出在 BigQueryIO 组件本身 - GroupBy 键失败。
【问题讨论】:
标签: google-cloud-platform google-bigquery google-cloud-dataflow