搭建sqoop的eclipse调试环境
下载sqoop的tar包解压,cd到sqoop根目录执行anteclipse,ant脚本就可以给我们生成eclipse的工程文件,我们只需要在eclipse中导入即可。
Sqoop服务器端设置:
打开bin\sqoop,最后一行,发现: exec${HADOOP_HOME}/bin/hadoop com.cloudera.sqoop.Sqoop "$@",说明执行的hadoop脚本,要想进行远程调试,我们需要在hadoop脚本中调试参数,在${HADOOP_HOME}/bin/hadoop脚本中加入,修改前最后一行如下:
exec "$JAVA" $HADOOP_OPTS -classpath"$CLASSPATH" $CLASS "$@"
修改之后最后一行如下:
exec "$JAVA" -Xdebug-Xrunjdwp:transport=dt_socket,address=8214,server=y,suspend=y $HADOOP_OPTS-classpath "$CLASSPATH" $CLASS "$@"
参数 含义:
Xdebug 告诉jvm运行在debug模式下
Xrunjdwp transport 指定连接方式(包括socket传输和内存传输两种,其中内存传输只支持windows,而且内存传输不支持远程调试)
address 监听端口,以接收debug客户端发起的TCP连接。
server =y 表示在remote debugging会话中作为服务端
suspend =y 表示在客户端建立连接前,服务端被挂起;=n 则不会被挂起。 专门调试时建议设置成y
Eclipse设置:
在项目上点击右键->Debug as->Debug Configurations->Remotejava Application:
Host:选择服务器的主机名
Port:刚刚设置的端口号,这里为8214.
debug
修改完后,直接运行sqoop命令,然后再debugeclipse中sqoop项目即可。
参考文档: