首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java.lang.OutOfMemoryError: Java heap space - Google数据流作业

java.lang.OutOfMemoryError: Java heap space - Google数据流作业
EN

Stack Overflow用户
提问于 2017-06-20 12:49:47
回答 1查看 2.1K关注 0票数 0

我正在运行一个谷歌数据流的工作与150名工人。我正在阅读来自谷歌PubSub的输入。经过几次充实后,我将结果写入谷歌BigQuery。

对于少数记录,我在Google Dataflow中看到以下错误

代码语言:javascript
复制
  (787b51f314078308): Exception: java.lang.OutOfMemoryError: Java heap space
java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57)
java.nio.ByteBuffer.allocate(ByteBuffer.java:335)
...
...
...
com.google.cloud.dataflow.sdk.util.SimpleDoFnRunner.invokeProcessElement(SimpleDoFnRunner.java:49)
com.google.cloud.dataflow.sdk.util.DoFnRunnerBase.processElement(DoFnRunnerBase.java:139)
com.google.cloud.dataflow.sdk.runners.worker.SimpleParDoFn.processElement(SimpleParDoFn.java:188)
com.google.cloud.dataflow.sdk.runners.worker.ForwardingParDoFn.processElement(ForwardingParDoFn.java:42)
com.google.cloud.dataflow.sdk.runners.worker.DataflowWorkerLoggingParDoFn.processElement(DataflowWorkerLoggingParDoFn.java:47)
Stack trace truncated. Please see Cloud Logging for the entire trace.

我使用150个工作人员每秒处理大约75K条消息。每条消息的大小约为1.5KB。我是否应该进一步增加no.of工作人员?或者我应该增加每个工作者的内存?如何增加每个工作进程的内存?

EN

回答 1

Stack Overflow用户

发布于 2017-06-20 23:17:10

数据流可能会遇到这样的问题,因为工作进程上的内存负载非常高,并且会给工作进程的稳定性带来问题。您可以尝试增加工作人员可用的内存。

例如,您可以尝试n1-highmem-2

要选择机器类型,可以在Python语言中使用--worker_machine_type参数,在Java语言中使用--workerMachineType

有关机器类型的详细信息,请查看GCE Machine Types

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44644045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档