我遇到拓扑问题我使用此命令在本地模式下运行
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
提前致谢
答案 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”设置的更多信息?