如何调试 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
.)
希望对您有所帮助。
我在 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.
pydev
就很好,因为它基本上是 eclipse。按照 this.
在我的机器上,远程调试适用于本地进程。我在 Eclipse Mars
.
pydev
(我认为这并不重要,但就我而言,我的机器上安装了两种不同的 Eclipse
,一种用于 Java,另一种用于 pydev
.)
希望对您有所帮助。