1. 如何进入Debug模式

  鼠标单击在需要停止的代码处打上断点:


  右键本地运行程序的时候,选择 debug 模式运行:

2. Debug模式界面

3. Debug调试相关快捷键

4. 扩展:IDEA远程Debug

  生产环境中,MapReduce 程序通常在 yarn 模式下运行,是一种分布式执行的环境。可以通过远程调试的方式在 IDEA 中进行 debug。

4.1 Linux集群启动监听服务

  要想通过远程断点调试,那么首先得在远程服务器端启动MapReduce任务的时候需要先暂停并开启一个监听服务,等待客户端的连接调试,可以通过设置运行时 JVM 的参数来搞定:
  -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000
  该命令参数是 JDK 自带的,可以通过java -agentlib:jdwp=help来查看 agentlib 各参数的具体说明,其中address=8000表示监听端口为 8000。


  针对上述参数,可以使用shell临时变量进行设置

1
export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000"

  在运行 MapReduce 程序的时候,可以发现启动程序暂定了并且开启了服务监听端口 8000:

4.2 Windows本地IDEA配置

  在 IDEA 中新建一个远程 Debug 调试配置:




  Debug 运行即可开始远程的调试 MapReduce 任务执行过程了


  后面的使用跟本地 dubug 类似,只不过此时程序是在远程服务器上运行的。