如何调试 Apache Storm Python

How to Debug Apache Storm Python

我在 IntelliJ 中将 Apache Storm 设置为 运行 本地模式。我可以 运行 入门拓扑就好了。但是,我想知道如何调试 Python 螺栓。因此,作为一个简单的示例,如何为 WordCountTopology 调试 splitsentences.py

我只能给一个"high level"答案:

使用 Storm 的多语言功能会导致分叉一个执行外部代码的新进程。因此,将启动一个新的 java.lang.UNIXProcess 来执行 WordCountTopology 中指定的 python 命令:

public SplitSentence() { super("python", "splitsentence.py"); }

您需要执行远程调试会话并从 Eclipse 中附加到此进程。但是,由于我不熟悉 Python 我不知道如何在 Eclipse 中远程调试 Python。

如果您安装了pydev(或者您不介意安装它),您可以按照this instructions.

调试远程应用程序 如果您有 Java 背景,

pydev 就很好,因为它基本上是 eclipse。按照 this.

安装它非常简单

在我的机器上,远程调试适用于本地进程。我在 Eclipse Mars.

上安装了 pydev

(我认为这并不重要,但就我而言,我的机器上安装了两种不同的 Eclipse,一种用于 Java,另一种用于 pydev .)

希望对您有所帮助。