远端调试名称节点
--------------------------------------------------------------------------------
[远端s101,namenode]
1.查看java远程调试的帮助
c:/>java -agentlib:jdwp=help
2.设置java虚拟机的远程调试
//设置java虚拟机参数,启用远端调试
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000
3.给namenode启动时增加jvm的远程调试功能
a.修改hadoop/bin/hdfs启动脚本(此方式是永久性的,不推荐使用)
HADOOP_NAMENODE_OPTS=$HADOOP_NAMENODE_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000
b.在shell中设置环境变量
$>export HADOOP_NAMENODE_OPTS=$HADOOP_NAMENODE_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000
c.完成调试后清空变量
$>export HADOOP_NAMENODE_OPTS=$HADOOP_NAMENODE_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000
4.启动名称节点
$>hadoop-daemon.sh start namenode #会显示正在监听8000端口
a.正常启动样式
b.远程调用启动样式
[客户端 eclipse]
1.找到namenode类,找到main函数,设置断点
2.右键 debug as >debug configuration ->remote java application
3.debug
在windows上和ubuntu上通过远程调试,查看Job在hadoop集群上执行的过程
ubuntu上运行jar包,windows上源码调试,必须保证两个代码一致
--------------------------------------------------------------------------------------------------------------
1.将本地代码打成Jar传到ubuntu上
2.设置HADOOP_CLIENT_OPTS环境变量
a.修改hadoop/bin/hdfs启动脚本(此方式是永久性的,不推荐使用)
HADOOP_CLIENT_OPTS=$HADOOP_CLIENT_OPTS-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000
b.在shell中设置环境变量
$>export HADOOP_CLIENT_OPTS=$HADOOP_CLIENT_OPTS-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000
c.完成调试后清空变量
$>export HADOOP_NAMENODE_OPTS=
3.启动job提交命令
# hadoop jar 本地代码打成的jar包 main方法类 输入路径 输出路径
$>hadoop jar hadoop2-0.0.1-SNAPSHOT.jar com.test.hadoop.mr.MyApp ncdc out
4.设置eclipse远端调试
5.开始调试