使用IDEA本地调试MapReduce程序

使用IDEA本地调试MapReduce程序

演示目标

在Windows开发环境下,直接使用IDEA运行MapReduce程序,并支持Debug调试。

演示环境

文件下载

  • 包含hadoop-2.6.5.tar.gz、hadoop.dll、winutils.exe三个文件,点击下载

完整配置

  • 将hadoop-2.6.5.tar.gz解压到自己想要存放的Windows目录下,例如E:\WorkSpace\Software\hadoop-2.6.5
  • 如图所示,在系统变量里配置HADOOP_HOMEHADOOP_USER_NAME,其中HADOOP_USER_NAME是指在访问HDFS时使用的用户,而Windows环境下进行调试时默认使用的是Windows的用户,但是Windows用户没有读写HDFS的权限,所以我们需要配置成有权限的Linux用户,我这里使用的是root用户:
    使用IDEA本地调试MapReduce程序
  • 如图所示,在系统变量PATH中追加%HADOOP_HOME%\bin
    使用IDEA本地调试MapReduce程序
  • winutils.exe放到%HADOOP_HOME%\bin路径下;
  • hadoop.dll放到C:\Windows\System32路径下;
  • 如图所示,将%HADOOP_HOME%\etc\hadoop路径下的log4j.properties文件复制到本地程序的resrources文件夹中,这一步主要是为了在本地调试时可以输出日志,如果任然无法输出日志,可以尝试将该文件放到src根目录下:
    使用IDEA本地调试MapReduce程序
  • 如图所示,修改本地程序启动类的配置,追加以下两行代码:
    使用IDEA本地调试MapReduce程序

开始调试

  • 如图所示,使用Dubug方式运行本地程序,最终可以看到日志输出的内容与在服务器上输出的日志类似:
    使用IDEA本地调试MapReduce程序
  • 如图所示,在Map阶段打上断点可以进行逐步调试:
    使用IDEA本地调试MapReduce程序