一直想用eclipse调试hadoop,可是网上的资料都是大部分都是说如何用eclipse开发hadoop的。其实那只是一个hadoop客户端的调试功能。要想真正的调试hadoop,就需要利用java的远程调试功能。具体方法如下:
1 在hdfs文件中调试如下的java虚拟机的运行参数:
HADOOP_OPTS=”-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y $HADOOP_OPTS”
或者 -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y
这个参数可是让我一路好找,本来想在hadoop-env.sh中添加的,毕竟这是hadoop官方文档中提到的添加环境变量的地方。但是,在添加了之后,出现了jdwp库被加载了两次的错误。(其实是HADOOP_NAMENODE_OPT中复制了两次。)最终放弃了。重新查找环境变量修改的地方。
利用grep命令查找有关HADOOP_OPT有关的文件。最后定位到了HDFS文件。