Eclipse远程调试HDP源代码
2016-03-21 11:25
549 查看
使用的是自己编译的HDP2.3.0的源代码编译的集群,此文介绍如何使用Eclipse远程调试Hadoop内核源代码,以调试namenode为例进行介绍。
在/usr/hdp/2.3.0.0-2557/hadoop-hdfs/bin/hdfs.distro 目录下,添加如下内容,这个内容是让namenode在启动的时候,打开调试模式:
图片中的代码是(不要写错了):
然后使用脚本启动namenode进程:
这样设置以后,NameNode这个进程会监听两个端口,其中一个就是8002,如下图:
Eclipse中的设置如下,Debug-> Debug configurations->Remote Java Application
在eclipse中,如下位置打一个端点:
设置好Eclipse后,在shell中,使用命令行在hdfs中创建一个文件夹:
可以看到Eclipse中的代码进入调试模式,然后就可以一步一步的进行调试,查看到每一步运行的情况:
调试的过程中,将Eclipse的进程优先级设置成Very high,可以让Eclipse的反映快不少,如果用默认的优先级,Eclipse将会非常卡:
在调试的过程中,发现ipc/Server.java这个文件中的,run方法,会不断的监听来自datanode的心跳数据,这个地方如果打上端点,会不断的被中断:
在Shell上,创建一个目录 hadoop fs -mkdir /user/zhangchao/32,然后可以在调试的过程中,发现ClientProtocol.mkdirs从客户端传递到server:
在/usr/hdp/2.3.0.0-2557/hadoop-hdfs/bin/hdfs.distro 目录下,添加如下内容,这个内容是让namenode在启动的时候,打开调试模式:
图片中的代码是(不要写错了):
HADOOP_OPTS="$HADOOP_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8002,server=y,suspend=n"
然后使用脚本启动namenode进程:
[root@n124 sbin]# ./hadoop-daemon.sh --script hdfs start namenode starting namenode, logging to /var/log/hadoop/root/hadoop-root-namenode-n124.ccsdp.com.out Listening for transport dt_socket at address: 8002 [root@n124 sbin]# jps 7635 NameNode 7744 Jps 1944 AmbariServer [root@n124 sbin]# pwd /usr/hdp/2.3.0.0-2557/hadoop/sbin
这样设置以后,NameNode这个进程会监听两个端口,其中一个就是8002,如下图:
Eclipse中的设置如下,Debug-> Debug configurations->Remote Java Application
在eclipse中,如下位置打一个端点:
设置好Eclipse后,在shell中,使用命令行在hdfs中创建一个文件夹:
[root@n124 sbin]# hadoop fs -mkdir /user/root/zhangchao
可以看到Eclipse中的代码进入调试模式,然后就可以一步一步的进行调试,查看到每一步运行的情况:
调试的过程中,将Eclipse的进程优先级设置成Very high,可以让Eclipse的反映快不少,如果用默认的优先级,Eclipse将会非常卡:
在调试的过程中,发现ipc/Server.java这个文件中的,run方法,会不断的监听来自datanode的心跳数据,这个地方如果打上端点,会不断的被中断:
在Shell上,创建一个目录 hadoop fs -mkdir /user/zhangchao/32,然后可以在调试的过程中,发现ClientProtocol.mkdirs从客户端传递到server:
相关文章推荐
- Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock
- java提高篇-----详解java的四舍五入与保留位
- java api文档的阅读技巧
- java调用ffmpeg获取视频时长
- 【转】spring 装配Bean中构造参数的注入
- 成为Java高级工程师需要掌握哪些核心点
- Java学习
- Eclipse RCP 导出产品配置
- 6、Java中Properties类的使用!
- java安全(四)HMAC 哈希消息认证
- java IO流——字节流
- 35 个 Java 代码性能优化总结
- java4种内部类
- eclipse无法启动的各种解决方法
- Java实例化类详解
- 修改java.exe启动服务名称
- springMVC-springMVC入门实例
- Java数组初始化
- Java多线程(二)
- Java day07内部类到匿名内部类