如何通过eclipse在本地集群/模式下调试apachestorm

odopli94  于 2021-06-21  发布在  Storm
关注(0)|答案(3)|浏览(309)

通过使用下面的q&a,我成功地在ApacheStorm集群(本地运行)上通过eclipse启用了调试。如何在eclipse中调试apachestorm?
我的 conf/storm.yaml 具有以下行以在工作节点上启用调试:

worker.childopts: "-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y"

当我将拓扑提交给storm运行(在集群中)时,我可以在编辑器中设置断点和查看变量。
但是当我尝试在本地(在本地模式下)运行它时,我似乎无法通过eclipse连接(连接被拒绝)。


# I'm using storm crawler, I submit a topology like so:

storm jar target/storm-crawler-core-10.6-SNAPSHOT-jar-with-dependencies.jar \
 com.digitalpebble.storm.crawler.CrawlTopology \
-conf crawler-conf.yaml \
-local

# ^ The `-local` runs it in a `LocalCluster`

# If I submit it to my actual cluster (without -local), I can debug it through eclipse.

# View the pastebin for all the output : http://pastebin.com/PEdA7fH0

我已经将上述命令的所有输出都包含到了一个pastebin中。单击此处查看
有关storm crawler如何启动localcluster的详细信息。
我希望能够在本地模式下进行调试,这样就可以在命令行中看到输出(当我通过设置的断点时),并快速进行更改和重新运行,基本上可以加快我的开发流程。

在localcluster(本地模式)中运行apachestorm时,如何通过eclipse调试器调试代码?

8fq7wneg

8fq7wneg1#

如果在本地模式下运行,则不涉及工作jvm,即不启动工作进程。因此,你的 worker.childopts 设置没有任何效果。
在eclipse中进行调试的最简单方法是在eclipse中提交/启动拓扑,而不是命令行。你的班级 CrawlTopology 有一个 main 方法,因此您可以直接在eclipse中执行它(当然是在调试模式下)。您不需要指定jar文件名。只需指定您的选项 -conf crawler-conf.yaml -local 在eclipse运行配置中。

cu6pst1q

cu6pst1q2#

我们可以像eclipse中的任何其他java代码一样调试storm拓扑。我在eclipse中使用localcluster模式启动拓扑。我能调试炮弹,三叉戟螺栓等。
此外,我还将storm core作为项目添加到eclipse中(而不是maven依赖项),这使我能够调试和理解storm中发生的事情。有助于更好地跟踪元组确认、发出处理程序、锚点、超时、异常等。

2uluyalo

2uluyalo3#

在本地模式下,您可以使用。

export STORM_JAR_JVM_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=localhost:8000"

在调用storm jar命令用eclipse进行远程调试之前。

相关问题