在eclipse下远程调试hadoop2.0
2013-07-07 00:30
381 查看
在《在eclipse下编译hadoop2.0源码》一文中,我详细介绍了如何在eclipse环境和命令行环境下编译hadoop2.0源代码,并简单介绍了如何构建hadoop环境,这篇文章将着重介绍如何在eclipse下调试源代码。
在hadoop2.0中,常用的模块有NameNode,DataNode, ResourceManager, NodeManager, FsShell等。这里我们以调试FsShell和NameNode模块为例。
FsShell命令调试:
FsShell命令是hadoop的Client端(任何hadoop集群上的节点都可以作为Client端)访问hadoop集群的最基本方式。比如 bin/hadoop fs 命令就是客户端访问hadoop文件系统的命令集。我们以bin/hadoop fs -ls / (显示hadoop文件系统根目录下的文件)为例。
在Client节点上的hadoop目录下找到文件bin/hadoop。打开这个脚本,找到如下图所在位置
改成如下图所示:
注意suspent设置为y表示暂停等待,知道调试器(这里是用eclipse中的调试)连接上才继续执行, address=8000表示在8000端口监听请求,也可以换成其他不冲突的端口。
因为调试的FsShell需要hadoop运行时环境,所以首先应当启动hadoop集群。启动过程这里不做介绍,启动成功以后,我们在Client端输入命令, 会显示如下图所示的信息:
这就表示调试环境已经建好并在8000端口开始监听调试请求。下面是在eclipse开始调试的步骤
打开eclipse并找到hadoop-common(上一篇博客介绍了如何将hadoop导入到eclipse中)
在hadoop-common找到文件FsShell.java文件并打开
找到FsShell中的main函数,并在main函数第一行处设置断点。
右键改文件,选择Debug As -> Debug Configurations... 弹出配置对话框
在左侧找到并双击Remote Application,这时会新建一个配置页,主机填Client端对应的IP地址,端口为8000,如下图
点击Debug,现在,你就可以调试刚刚输入的命令了,跟踪该条命令的执行过程。
NameNode调试:
NameNode调试和上面的调试步骤基本类似,下面只做简单的介绍。
调试NameNode需要修改NameNode所在节点的bin/hdfs文件,修改如下:
改为
其中,suspend=n,如果设置为y,则可以调试NameNode的启动过程。
启动NameNode
调试NameNode的入口在hadoop-hdfs项目的NameNode.java文件中,找到main函数,并设置断点
同FsShell一样,新建一个Remote Application,填入的主机为NameNode节点所在的IP,端口为8000
点击Debug,调试就可以开始了。
关于eclipse调试hadoop2.0的内容就介绍到这里。现在我们就可以利用调试跟踪hadoop的执行流程,更深入的分析hadoop源代码。 最后甚至可以修改hadoop源代码,加入自己需要的功能。
[b]本文来自博客园,如果查看原文请点击 /article/5545213.html[/b]
在hadoop2.0中,常用的模块有NameNode,DataNode, ResourceManager, NodeManager, FsShell等。这里我们以调试FsShell和NameNode模块为例。
FsShell命令调试:
FsShell命令是hadoop的Client端(任何hadoop集群上的节点都可以作为Client端)访问hadoop集群的最基本方式。比如 bin/hadoop fs 命令就是客户端访问hadoop文件系统的命令集。我们以bin/hadoop fs -ls / (显示hadoop文件系统根目录下的文件)为例。
在Client节点上的hadoop目录下找到文件bin/hadoop。打开这个脚本,找到如下图所在位置
改成如下图所示:
注意suspent设置为y表示暂停等待,知道调试器(这里是用eclipse中的调试)连接上才继续执行, address=8000表示在8000端口监听请求,也可以换成其他不冲突的端口。
因为调试的FsShell需要hadoop运行时环境,所以首先应当启动hadoop集群。启动过程这里不做介绍,启动成功以后,我们在Client端输入命令, 会显示如下图所示的信息:
这就表示调试环境已经建好并在8000端口开始监听调试请求。下面是在eclipse开始调试的步骤
打开eclipse并找到hadoop-common(上一篇博客介绍了如何将hadoop导入到eclipse中)
在hadoop-common找到文件FsShell.java文件并打开
找到FsShell中的main函数,并在main函数第一行处设置断点。
右键改文件,选择Debug As -> Debug Configurations... 弹出配置对话框
在左侧找到并双击Remote Application,这时会新建一个配置页,主机填Client端对应的IP地址,端口为8000,如下图
点击Debug,现在,你就可以调试刚刚输入的命令了,跟踪该条命令的执行过程。
NameNode调试:
NameNode调试和上面的调试步骤基本类似,下面只做简单的介绍。
调试NameNode需要修改NameNode所在节点的bin/hdfs文件,修改如下:
改为
其中,suspend=n,如果设置为y,则可以调试NameNode的启动过程。
启动NameNode
调试NameNode的入口在hadoop-hdfs项目的NameNode.java文件中,找到main函数,并设置断点
同FsShell一样,新建一个Remote Application,填入的主机为NameNode节点所在的IP,端口为8000
点击Debug,调试就可以开始了。
关于eclipse调试hadoop2.0的内容就介绍到这里。现在我们就可以利用调试跟踪hadoop的执行流程,更深入的分析hadoop源代码。 最后甚至可以修改hadoop源代码,加入自己需要的功能。
[b]本文来自博客园,如果查看原文请点击 /article/5545213.html[/b]
相关文章推荐
- 在eclipse下远程调试hadoop2.0
- 在Eclipse中远程调试Hadoop
- 小心得--实战windows7下eclipse远程调试linux hadoop
- eclipse远程调试hadoop2.6
- Eclipse远程调试Hadoop集群
- Linux下搭建Eclipse下Hadoop的开发环境以及远程调试
- eclipse/intellij idea 远程调试hadoop 2.6.0
- hadoop eclipse 权威指南天气代码远程调试
- 实战windows7下eclipse远程调试linux hadoop
- Hadoop学习笔记之在Eclipse中远程调试Hadoop
- Hadoop学习笔记之在Eclipse中远程调试Hadoop
- windows下在eclipse上远程连接hadoop集群调试mapreduce错误记录
- eclipse远程调试hadoop程序
- eclipse远程调试Hadoop
- window8.1编译hadoop2 eclipse插件,并远程调试hadoop程序
- hadoop学习(六)--------eclipse远程调试
- win7下eclipse远程调试Hadoop遇到的问题解决办法
- 第1.3章 hadoop之eclipse远程调试hadoop
- Hadoop学习笔记之在Eclipse中远程调试Hadoop
- eclipse中集成hadoop插件以及远程调试hadoop的resourcemanager