gpt4 book ai didi

java - Apache Storm - LocalCluster 停止日志记录,但 java 进程仍在运行

转载 作者:行者123 更新时间:2023-12-02 10:33:55 25 4
gpt4 key购买 nike

我们正在将 Apache Storm 的 LocalCluster 作为 java 进程运行,即通过 nohup。

我们正在使用以下配置运行一个简单的拓扑。

Config config = new Config();
config.setMessageTimeoutSecs(120);
config.setNumWorkers(1);
config.setDebug(false);
config.setMaxSpoutPending(1);

我们正在将拓扑提交到 LocalCluster。我们的关闭钩子(Hook)是跨源发现的默认钩子(Hook)。

Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
cluster.killTopology(TOPOLOGY_NAME);
cluster.shutdown();
}
});

最近我们遇到了 Java 堆问题,这些问题本来可以通过增加 Xms、Xmx 和使用 MarkSweepGC 来解决。

但是,我们遇到了新问题。一段时间后,spout 日志不会被写入。不会有任何与 Storm 相关的异常/错误的痕迹。

主要问题是 java 进程,即通过 nohup 仍然出现在 ps -ef 中。会发生什么问题?

最佳答案

您可以尝试使用config.setDebug(true);启用调试日志记录,这可能会让您知道发生了什么。

此外,下次您的拓扑挂起时,您应该能够通过使用 jstack 或向 Java 进程发送 SIGQUIT (kill -3) 来判断它在做什么。这将导致进程转储 JVM 中每个线程的堆栈跟踪,这应该可以让您找出它挂起的原因。

顺便说一句,如果您正在这样做,请不要在生产中使用 LocalCluster。它用于测试。

关于java - Apache Storm - LocalCluster 停止日志记录,但 java 进程仍在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53441688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com