
# 如何使用IDEA远程调试业务
#### 问题
使用Storm客户端提交了业务之后，如何使用IDEA远程调试业务？
#### 回答
以调试WordCount程序为例，演示如何进行IDEA的远程调试：
1. 登录FusionInsight Manager系统，选择"集群 \> *待操作集群的名称* \> 服务 \> Storm"，选择"配置"选项卡，在搜索框中搜索并调大nimbus.task.timeout.secs和supervisor.worker.start.timeout.secs的值，建议调整为最大值。然后在WORKER_GC_OPTS的现有值后追加-Xdebug -Xrunjdwp:transport=dt_socket,address=5055,suspend=n,server=y，保存配置后重启相关实例。
   
   ![](https://support.huaweicloud.com/devg3-mrs/public_sys-resources/note_3.0-zh-cn.png)
   调试Storm程序需要先修改指定的服务端参数，并在重启服务后生效，建议在测试环境上进行调测。
   
   
2. 提交拓扑后，在Storm UI上进入到Topology界面，再单击进入要调试组件界面。 
   图1进入拓扑的Component界面   
   ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0263912621.png)
   
   
3. 在组件页面获取worker进程运行的主机ip地址，如果有多个则任选一个。 
   图2获取Worker运行的主机   
   ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0263912618.jpg)
   
   
4. 打开IDEA工程，在菜单栏中选择"Run \> Edit Configurations"。
5. 在弹出的配置窗口中用鼠标左键单击左上角的号，在下拉菜单中选择Remote，然后选择对应要调试的源码模块路径，并配置远端调试参数Host和Port，如下图所示。 
   其中Host为获取的Worker运行的主机IP地址，Port为调试的端口号（确保该端口在运行机器上没被占用）。
   图3配置参数   
   ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0263912644.jpg)
   ![](https://support.huaweicloud.com/devg3-mrs/public_sys-resources/note_3.0-zh-cn.png)
   当改变Port端口号时，在WORKER_GC_OPTS中追加的调试参数也要跟着改变，比如Port设置为8011，对应的调试参数则变更为-Xdebug -Xrunjdwp:transport=dt_socket,address=8011,suspend=n,server=y
   
   
6. 设置调试断点。 
   在IDEA代码编辑窗口左侧空白处单击鼠标左键设置相应代码行断点，如下图所示。
   图4设置断点   
   ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0263912592.jpg)
   
   
7. 启动调试。 
   在IDEA菜单栏中选择"Run \> Debug 'Unnamed'"开启调试窗口，接着开始调试，比如单步调试、查看调用栈、跟踪变量值等，如下图所示。
   图5调试   
   ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0263912638.png)
   
   
 
