上一节我们已经成功编译了hadoop源码,这样我们就可以根据需要在源代码里增加调试信息,跟踪hadoop的执行。这种方式需要对跟踪的对应模块代码进行修改,还要重新编译jar包,并替换share/hadoop目录下对应的jar包,然后重新启动要调试的hadoop服务才行,比较麻烦。所以我学习了一下如何用eclipse远程调试,这样就可以设置断点,十分方便。
1.关于JAVA远程调试的原理和设置,下面这篇文章讲解十分详细,可以先了解下:
http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/
2.hadoop2.6.0版本主要是
sbin/start-dfs.sh
sbin/start-yarn.sh这两个脚本。
简单了解一下这两个脚本的工作,下面以start-dfs.sh为例:
下面只列出关键代码:
DEFAULT_LIBEXEC_DIR="$bin"/../libexec
HADOOP_LIBEXEC_DIR=${HADOOP_LIBEXEC_DIR:-$DEFAULT_LIBEXEC_DIR}
. $HADOOP_LIBEXEC_DIR/hdfs-config.sh //执行libexec/hdfs-config.sh脚本设置CLASSPATH,JAVA_OPTS等变量