首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试apache heron sccheduler

调试apache heron sccheduler
EN

Stack Overflow用户
提问于 2016-08-01 08:52:45
回答 1查看 179关注 0票数 3

推特声称,apache与apache相比的最大优势之一是debug-ability,这是通过将每个喷口/螺栓任务移动到一个heron实例(一个JVM进程)而不是将多个任务捆绑到一个JMV(以前是如何使用风暴)来实现的。

这种方法确实有助于调试拓扑。但我的问题是,如何尝试调试鹭的核心部分,如调度程序或资源管理部分。除了记录/打印输出之外,还有其他方法吗?因为这是一个耗费时间和精力的过程。有没有一种方法可以使用像IDE这样的工具(例如IntelliJ)来设置检查点,并调试heron中调度任务的整个过程?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-06 12:10:58

在与这个问题做了很长时间的斗争之后,我终于找到了一个答案,得到了Heron开发人员的帮助(Hat off to他们)。答案是远程调试jvm进程.

已在heron文档中添加了故障排除部分(请参阅调试Java拓扑 at 此页),该文档提供了远程调试此页所需的说明。它很好,但不是我所需要的,因为它只用于调试实例(螺栓/喷口.)。但我需要调试核心部分,如调度器、启动程序等。

要为heron启用完整的execute.py(can远程调试,您应该在heron/tools/cli/src/python)文件中向添加第二行:

代码语言:javascript
复制
java_opts = ['-D' + opt for opt in java_defines]
//add this line here
java_opts.append('-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005')

地址:您在IDE中配置的端口。

挂起:y是指挂起执行,直到客户机(调试器或IDE)连接到服务器(jvm进程)为止。

您可以在此链接中的Intellij中找到设置远程调试的说明。

重要:不要忘记重新编译源代码和安装bin包。编译和安装heron

代码语言:javascript
复制
bazel build  --config=ubuntu heron/...
bazel run --config=ubuntu -- scripts/packages:heron-client-install.sh --user
bazel run --config=ubuntu -- scripts/packages:heron-api-install.sh --user --maven

现在,将检查点放置在任何您想要的位置,并从终端提交拓扑,然后在IDE中开始调试,它将带您到检查点。只需记住在执行路径中添加检查点,SubmitterMain或SchedulerMain可能是很好的候选者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38694622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档