风暴拓扑超出了GC开销限制

时间:2016-04-02 22:42:13

标签: maven apache-storm

我遇到拓扑问题我使用此命令在本地模式下运行

mvn compile exec:java -Dexec.classpathScope=compile -Dexec.mainClass=trident.MyTopology 

得到了

Async loop died!java.lang.OutOfMemoryError: GC overhead limit exceeded
你能帮忙解决这个问题吗?如果有任何数据需要帮助告诉我

我认为storm.yaml在这里并不重要,因为在本地没有产生这个错误或者我错了?

 Selection  
  0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode
* 1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6-oracle/jre/bin/java          1062      manual mode
  3            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode

提前致谢

2 个答案:

答案 0 :(得分:0)

看起来Maven需要更多的堆空间。这可能是由于Maven中的问题,或者您的构建对于默认参数来说太大了。无论哪种方式,您都可以尝试使用以下方法添加更多堆空间:

export MAVEN_OPTS="-Xmx3000m"
mvn compile exec:java -Dexec.classpathScope=compile -Dexec.mainClass=trident.MyTopology 

这将给Maven~3GB。你可以或多或少地尝试看看哪种方法最适合你的情况。

有更多细节和想法: Maven Out of Memory Build Failure

答案 1 :(得分:0)

很难猜出拓扑结构有什么问题。 异常告诉您GC经常运行,您可以尝试增加工作堆(“worker.childopts”设置)。 其他解决方案是限制拓扑结构同时使用的元组数。 (“topology.max.spout.pending”设置)但这仅在您的拓扑支持acking时才有效。您能否提供有关正在运行的拓扑以及您正在使用的“worker.childopts”,“topology.max.spout.pending”设置的更多信息?