使用IDEA本地调试MapReduce程序
演示目标
在Windows开发环境下,直接使用IDEA运行MapReduce程序,并支持Debug调试。
演示环境
- 基于Hadoop2.6.5;
- 启动HDFS与YARN高可用集群环境,可参考以下两篇博客:
- 上传MR计算所用的文章到HDFS中;
- 使用Java编写MapReduce程序,可参考博客:
文件下载
- 包含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_HOME
、HADOOP_USER_NAME
,其中HADOOP_USER_NAME
是指在访问HDFS时使用的用户,而Windows环境下进行调试时默认使用的是Windows的用户,但是Windows用户没有读写HDFS的权限,所以我们需要配置成有权限的Linux用户,我这里使用的是root用户: - 如图所示,在系统变量PATH中追加
%HADOOP_HOME%\bin
: - 将
winutils.exe
放到%HADOOP_HOME%\bin
路径下; - 将
hadoop.dll
放到C:\Windows\System32
路径下; - 如图所示,将
%HADOOP_HOME%\etc\hadoop
路径下的log4j.properties
文件复制到本地程序的resrources文件夹中,这一步主要是为了在本地调试时可以输出日志,如果任然无法输出日志,可以尝试将该文件放到src根目录下: - 如图所示,修改本地程序启动类的配置,追加以下两行代码:
开始调试
- 如图所示,使用Dubug方式运行本地程序,最终可以看到日志输出的内容与在服务器上输出的日志类似:
- 如图所示,在Map阶段打上断点可以进行逐步调试: