利用eclipse远程调试模式搭建一个调试hadoop源码的环境

来源:互联网 发布:知乎 金庸 黄蓉 编辑:程序博客网 时间:2024/05/26 02:20

1、 利用eclipse远程调试模式搭建一个调试hadoop源码的环境,抓图证明搭建成功。

1) 软件准备:

http://www.sparxsystems.cn/products/index.html下载EACN_TrialEAEclipse_Integration

2) 安装上面两个软件,在安装EAEclipse_Integration的过程中有个过程需要选择你的eclipse的安装路径,注意一定要选择正确,当安装完成后会在ecliple的菜单栏上多了一个菜单,如下图所示:

1.png


3)
Eclipsehadoop插件安装在这里就不详细介绍了,新建一个Java Project

2.png


4)
右键点击你新建项目的src目录,选择import,然后选择你的Hadoop源码包路径,如下图所示:

按照上面方法将mapredcoretools等包含org的包都导进来,然后把hadoop目录下的lib包都导进项目里面来,最后结果如下图所示:

3.png


4.png

5.png

5)EA中新建一个项目,创建一个Class Model视图,右键点击Class Model视图,如下图所示:

6.png


点击上图的Options,如下所示,选择你的eclipse的路径:

7.png


6)
建立源码的类图,右键点击Class Model,选择扩展-eclipse合并,如下图:

8.png


在上图中选择与eclipse合并后进入如下界面,我们以conf下的包为例将类导入EA中:

9.png


在上图中点击go后,在EA中生成如下图所示的类:

10.png


选择上图中的4个类,拖入左边界面,如下图所示:

11.png


选择连接,点击确定,如下图:

12.png


整个源码环境的建立、导入以及建立类图的过程完成,下面进行远程调试的环境搭建。

7) 修改$HADOOP_HOME/bin下的hadoop文件:

elif ["$COMMAND" = "namenode"]; then CLASS='org.apache.hadoop.hdfs.server.namenode.NameNode'HADOOP_OPTS="$HADOOP_OPTS $HADOOP_NAMENODE_OPTS"

改为:

elif [ "$COMMAND" = "namenode" ] ; then

CLASS='org.apache.hadoop.hdfs.server.namenode.NameNode'

HADOOP_OPTS="$HADOOP_OPTS $HADOOP_NAMENODE_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

8) 启动hadoop

13.png


9)
eclipse源码中选择NameNode.java,右键点击,选择Debug ASDebug Configurations进入下图所示界面

14.png


在上图中选择Remote Java Application,点击新建,增加一个NameNodeDebug,具体配置如上图所示。点击Debug就可以进行调试了。

调试界面如下图所示:

15.png


0 0