使用 IntelliJ 远程调试 HDFS

8 篇文章 0 订阅
2 篇文章 0 订阅
本文介绍了如何使用 IntelliJ 进行 HDFS 的远程调试。首先找到 hadoop 脚本的位置,复制一份并用 `hadoop-debug` 命令启动,设置断点后在 9090 端口等待调试器连接。在 IntelliJ 中配置远程调试,连接到 9090 端口,即可开始调试,深入理解 HDFS 操作的内部细节。
摘要由CSDN通过智能技术生成

首先找到使用的 hadoop 脚本,例如在Apache的hadoop-1.0.0版本中,hadoop位于 ${HADOOP_HOME}/bin 目录下,本人使用的CDH4.4版本中该脚本则位于 /usr/lib/hadoop/bin目录下。

为了不影响原来的使用,将 bin 目录之下的hadoop脚本复制再复制一份。

cp hadoop hadoop-debug

打开 hadoop-debug 脚本,修改以下内容

#exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
exec "$JAVA" -Xdebug -Xrunjdwp:transport=dt_socket,address=9090,server=y,suspend=y $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"  

之后,就可以使用 hadoop-debug 命令进行 hadoop 操作的调试了。

例如,如果想调试 hadoop fs -ls 是怎么运行的。那么就可以在 hadoop 源码中的相关地方设置断点。之后,运行 hadoop-debug fs -ls /path/name/ 那么这时候,hadoop是不会运行的。hadoop会在9090端口等待调试器的链接,如果调试器未来到,则程序suspend。

之后就很简单了,在IntelliJ 中对远程主机(往往是本地)的 9090 端口进行远程调试,然后,就会跳到之前设置的断点了。

可以通过这个方法调试很多hadoop的操作,看看这些操作在HDFS上到底发生了什么。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值