调试Hadoop源代码

个人博客地址:调试Hadoop源代码 | 一张假钞的真实世界

Hadoop版本

Hadoop 2.7.3

调试模式下启动Hadoop NameNode

${HADOOP_HOME}/etc/hadoop/hadoop-env.sh中设置NameNode启动的JVM参数,如下:

复制代码
export HADOOP_NAMENODE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8788,server=y,suspend=y"
export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_NAMENODE_OPTS"

使用脚本${HADOOP_HOME}/sbin/start-dfs.sh启动HDFS,如果有以下提示信息则说明调试模式下启动NameNode成功:

复制代码
Listening for transport dt_socket at address: 8788

此时,如果执行jps查看java进程信息会有以下信息,是因为NameNode进程被挂起并处于监听状态,直到收到debug确认信息。

复制代码
$ jps
10638 Jps
10438 -- main class information unavailable
2171 
10508 DataNode

设置断点

找到hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java并在main函数中设置断点,如下图:

在Eclipse中调试

NameNode.java代码中点击右键,在弹出的菜单中选择Debug As -> Debug Configurations...,在弹出的对话框中双击Remote Java Application,配置内容如图:

配置完成后点击Debug按钮进入调试界面。

相关推荐
蓝眸少年CY6 分钟前
Hadoop2-HDFS文件系统
大数据·hadoop·hdfs
Web3VentureView14 分钟前
SYNBO Protocol AMA回顾:下一个起点——什么将真正推动比特币重返10万美元?
大数据·人工智能·金融·web3·区块链
老金带你玩AI18 分钟前
CC本次更新最强的不是OPUS4.6,而是Agent Swarm(蜂群)
大数据·人工智能
Hello.Reader23 分钟前
Flink Plugins 机制隔离 ClassLoader、目录结构、FileSystem/Metric Reporter 实战与避坑
大数据·flink
invicinble29 分钟前
对于对产品的理解
大数据·信息可视化·数据分析
B站_计算机毕业设计之家1 小时前
豆瓣电影数据可视化分析系统 | Python Flask框架 requests Echarts 大数据 人工智能 毕业设计源码(建议收藏)✅
大数据·python·机器学习·数据挖掘·flask·毕业设计·echarts
Hello.Reader1 小时前
Flink JobManager 高可用(High Availability)原理、组件、数据生命周期与 JobResultStore 实战
大数据·flink
happyboy19862111 小时前
2026 高职大数据专业考什么证书对就业有帮助?
大数据
Hello.Reader1 小时前
Flink 对接阿里云 OSS(Object Storage Service)读写、Checkpoint、插件安装与配置模板
大数据·阿里云·flink
Lansonli1 小时前
大数据Spark(八十):Action行动算子fold和aggregate使用案例
大数据·分布式·spark