note: 只在linux上面调试,windows下面会有脚本执行的问题,可能需要安装cygwin可以解决.
1 把编译好的hadoop源代码导入eclipse
2 如果要调试hdfs,修改~/hadoop-2.2.0/bin/hdfs
-Xrunjdwp:transport=dt_socket,address=6666,server=y,suspend=y”
$HADOOP_CLIENT_OPTS”
监听设置在这个位置,suspend=y,就是说操作dfs命令时候会挂起在6666端口,进程会暂停,直到有客户端来连接这个端口,比如eclipse远程调试。
3 eclipse打开远程调试
4 要调试其他功能,根据脚本来设置监听即可
5
如果调试自己写的mapreduce(伪分布式,mapreduce采用local方式,保证使用单个jvm情况下,否则会有静听端口冲突),修改~/hadoop-2.2.0/bin/hadoop
“$JAVA” $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS “$@”
-Xrunjdwp:transport=dt_socket,address=54321,server=y,suspend=n
$HADOOP_OPTS -classpath “$CLASSPATH” $CLASS “$@”
执行hadoop jar ***.jar classname param…
即可进入远程debug模式。