远程调试hadoop1源码(以调试namenode举例)
1.调试环境
1.1 远程linux运行的hadoop
1.2 本地windows的eclipse中导入hadoop源代码
1.3 本地windows的eclipse中有hadoop的自己写的代码
2.步骤
2.1修改远程linux运行的hadoop程序的hadoop-env.sh,
把第21行注释掉,增加一行代码
export HADOOP_NAMENODE_OPTS=
"-Xdebug -Xrunjdwp:transport=dt_socket,address=9090,server=y,suspend=y"
2.2 在本地windows的eclipse中导入hadoop的源代码,在对应的NameNode类上增加断点,然后使用debug方式运行,具体配置见截图,这样要调试的本地代码就和服务端关联上
2.3 在本地windows的eclipse中使用debug方式运行自己写的代码。
3 详细解释如下:
3.1 配置文件hadoop-env.sh的说明
export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_NAMENODE_OPTS" ---> 启动namenode参数 export HADOOP_SECONDARYNAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_SECONDARYNAMENODE_OPTS" ---> 启动secondnamenode参数 export HADOOP_DATANODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_DATANODE_OPTS" ---> 启动datanode参数 export HADOOP_BALANCER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_BALANCER_OPTS" ---> 启动balancer 负载参数 export HADOOP_JOBTRACKER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_JOBTRACKER_OPTS" ---> 启动jobtracker参数 调试namenode因此需要修改namenode启动参数: #export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_NAMENODE_OPTS" ---> 注释掉原来启动写法 export HADOOP_NAMENODE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=9090,server=y,suspend=y" -Xdebug 以debug方式启动 -Xrunjdwp: 引出如下选项参数 transport=dt_socket, 传输方式 address=9090, 访问端口,端口可以改动,设置为9090后在启动Hadoop集群下监听此端口等到客户端访问 server=y, 远程调试下,设置Hadoop作为服务器端 suspend=y 设置为追加模式
调试那种类型的节点,仅需要将: export HADOOP_NAMENODE_OPTS= "-Xdebug -Xrunjdwp:transport=dt_socket,address=9090,server=y,suspend=y" 修改成对应类型节点即可 eg: debug jobtracker export HADOOP_JOBTRACKER_OPTS= "-Xdebug -Xrunjdwp:transport=dt_socket,address=9090,server=y,suspend=y"
3.2 启动Hadoop集群后 namenode jps结果如下:
[root@master bin]# jps 16254 SecondaryNameNode 16330 JobTracker 16563 Jps Could not synchronize with target // 表示等待监听 连接debug端口即可解决 这里我们在eclipse中debug代码即可 ,连接后如下 [root@master bin]# jps 16254 SecondaryNameNode 18518 Jps 16330 JobTracker 16109 NameNode
3.3 在namenode修改hadoop-env.sh后启动集群,输出日志如下 看下图可以看到监听启动:
eclipse 将客户端代码和Hadoop源码关联设置如下:
eclipse中debug FileSystemHdfs,在nomenode下增加断点 效果显示如下:
相关推荐
changjiang 2020-11-16
minerd 2020-10-28
WeiHHH 2020-09-23
Aleks 2020-08-19
WeiHHH 2020-08-17
飞鸿踏雪0 2020-07-26
tomli 2020-07-26
deyu 2020-07-21
strongyoung 2020-07-19
eternityzzy 2020-07-19
Elmo 2020-07-19
飞鸿踏雪0 2020-07-09
飞鸿踏雪0 2020-07-04
xieting 2020-07-04
WeiHHH 2020-06-28
genshengxiao 2020-06-26
Hhanwen 2020-06-25