1.修改$HADOOP_HOME/bin/hdfs 脚本
以调试NameNode为例,找到如下代码:
if [ "$COMMAND" = "namenode" ] ; then
CLASS='org.apache.hadoop.hdfs.server.namenode.NameNode'
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_NAMENODE_OPTS"
添加如下
HADOOP_OPTS="$HADOOP_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=7777,server=y,suspend=y"
端口号为7777
2. 启动相应脚本
本例中启动 $HADOOP_HOME/sbin/start-dfs.sh
启动后会提示 Listening for transport dt_socket at address: 7777
3. eclipse调试
eclipse导入hadoop2.6编译后源码,打开Eclipse的 Debug Configurations ,新建一个Remote Java Application。指定下project工程项目,以及需要调试的hadoop节点的ip和端口。