使用的是自己编译的HDP2.3.0的源代码编译的集群,此文介绍如何使用Eclipse远程调试Hadoop内核源代码,以调试namenode为例进行介绍。

在/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:

转载于:https://www.cnblogs.com/justinzhang/p/5301140.html

Eclipse远程调试HDP源代码相关推荐

  1. 使用 Eclipse 远程调试 Java 应用程序

    转载地址:使用 Eclipse 远程调试 Java 应用程序 远程调试对应用程序开发十分有用.例如,为不能托管开发平台的低端机器开发程序,或在专用的机器上(比如服务不能中断的 Web 服务器)调试程序 ...

  2. ECLIPSE远程调试出现如下问题 ECLIPSE中调试代码提示找不到源

    ECLIPSE远程调试出现如下问题  ECLIPSE中调试代码提示找不到源 如此提示是由于没有JAR包中找不到MAIN,可以手动添加或自己修改 利用ECLIPSE填写JAR中的MAIN方法后,就可以调 ...

  3. Spring Boot 实用开发技巧————Eclipse 远程调试

    引言 在之前的开发当中,都会进行本地项目启动,然后向本地服务发起请求来进行 Debug 调试代码,这也是开发人员最常见的调试操作.但是当项目逐渐成型,慢慢的将各个模块部署到服务器后,调试的手段可能就仅 ...

  4. Eclipse远程调试Java代码的三种方法

    Eclipse远程调试Java代码的三种方法, 第1种方法是用来调试已经启动的Java程序,Eclipse可以随时连接到远程Java程序进行调试, 第2种方法可以调试Java程序启动过程,但是Ecli ...

  5. 用Eclipse远程调试部署在Tomcat下的Web应用程序

    今天同事告诉了我一个用Eclipse远程调试部署在Tomcat下的Web应用程序的方法: 安装解压版本的Tomcat,因为现在好像Tomcat的Windows安装版目录下没有catalina.sh(. ...

  6. eclipse远程调试两种模式

    2019独角兽企业重金招聘Python工程师标准>>> eclipse远程调试两种模式: 一.服务端监听 (1)服务器端需执行程序前加参数  -Xdebug -Xrunjdwp:tr ...

  7. eclipse远程调试jar包

    eclipse如何进行远程调试? 1.启动jar包,带上如下参数执行 java -Xdebug -Xrunjdwp:transport=dt_socket,address=8080,server=y, ...

  8. eclipse 远程调试java_Eclipse远程调试Java代码的三种方法

    Eclipse远程调试Java代码的三种方法, 第1种方法是用来调试已经启动的Java程序,Eclipse可以随时连接到远程Java程序进行调试, 第2种方法可以调试Java程序启动过程,但是Ecli ...

  9. eclipse远程调试失败

    客户端和服务器端在安装配置好JDK,实现JPDA的远程调试,但是我尝试了5天一直不能正常访问实现. 现状: 1.本地调试没有问题,内网调试可以进行(证明调试方法正确) 2.通过示例程序得到服务器端口能 ...

最新文章

  1. 公开课报名 | 深入浅出理解A3C强化学习
  2. win10双屏让任务栏显示不相同的方法
  3. Android nDrawer
  4. 地图自定义编码CSV转换成ini文件
  5. oracle转64编码,[转]将oracle数据库的编码变成utf-8
  6. 乌班图linux配置yum仓库,Linux系统的仓库配置(yum、epel)与软件安装(wireshark,wget,nginx)...
  7. 使用Hadoop Streaming 完成MapReduce(Python代码)
  8. python制作文本编辑器_Python小实战:制作文本编辑器
  9. 基于阿里云数加MaxCompute的企业大数据仓库架构建设思路
  10. day5 JavaEE实战班
  11. 数组的冒泡排序快速上手
  12. EM从最大似然到EM算法浅解
  13. MPEG-2码流结构分析
  14. PAT 乙级A1025 适合当算法入门练习题做
  15. nmap命令的安装及用法
  16. Linux基础学习记录
  17. LoadRunner教程(7)-LoadRunner 创建测试场景
  18. 【电源科普】负载调整率
  19. pos机v1,简单pos机
  20. Google Sheet 学习笔记

热门文章

  1. 踩内存是什么意思啊_面试|搬了这么久的砖,居然还不知道什么“踩内存”
  2. 英雄联盟更新后服务器还在维护吗,英雄联盟今天维护到什么时候结束 11月12日停机更新维护公告...
  3. 【CMD】复制并覆盖目标文件
  4. 脚本启动Tomcat
  5. linux 检测远程端口是否打开---nmap命令
  6. 公务员考试中的计算机知识点,2021年度公务员考试计算机基础知识试题.doc
  7. java获取数据库MetaData
  8. java序列化如何实现_Java实现序列化与反序列化的简单示例
  9. linux如何在a休息时运行b,Linux下如何优雅地修正命令?
  10. 中psr_典型电路—电容10UF 和0.1UF并联使用的技巧常见于电源电路中,你知道其中的原理吗?...