Hadoop大数据之Debug

为什么要学习远程debug?
以前都是在一个进程进行debug

hadoop很多进程,是一个集群,想调试某一个集群,要通过远程debug调试。hadoop是很多进程

JPDA简介
........

怎样配置远程调试
dt_socket 表示使用套接字传输
address=8000
server=y
suspend=y
需要在$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件中:
#远程调试namenode
export HADOOP_NAMENODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=8888,server=y,suspend=y(运行的时候将被挂起)"
#远程调试datanode
export HADOOP_DATANODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=9888,server=y,suspend=y(运行的时候将被挂起)"

修改完成后 重新启动
stop-dfs.sh

start-dfs.sh

jps

[root@hadoop1 ~]# jps
4400 ResourceManager
31708 -- main class information unavailable
31791 -- main class information unavailable
4492 NodeManager
2906
31900 SecondaryNameNode
32001 Jps

为什么不显示main class的信息呢?
因为main class 已经被挂起

在windows下进行调试

windows开启eclipse
只要eclipse中有源码

NameNode.class 找到main方法 debug Configuration Name:XXXX Host:192.168.8.101 Port:8888 debug

通过jps查看,发现namenode已经启动


然后找到DataNode.class
Host:192.168.8.101 Port:9888 debug

jps
已经启动datanode

 

sbin下面 hadoop-daemon.sh 单独启动一个hadoop进程
hadoop-daemon.sh start datanode 启动datanode进程


---------------------------------------------------
NameNodeRpcServer.class
找到 getBlockLocations
这是服务端,客户端调用的时候会进来

debug HDFSDemo.java

转载于:https://www.cnblogs.com/muziyushao/p/4248226.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值