Hadoop分布式程序的调试方法

C++沉思录+C专家编程+C和指针
39.0元

了解一个系统的内部,我觉得最好的办法只有两个:

1. 找系统的开发设计者仔仔细细的问,

2. 自己跟踪调试系统。

估计要找到 cutting 详细聊不太可能,那只有第二个办法可以采用了,呵呵。而且当 hadoop 出现一些莫名问题的时候,跟踪调试程序也是最后的无奈选择。

工欲善其事,必先利其器。我选择的工具和环境配置如下:

1. 开发机 OS linux (X 选择 gnome 或者 kde 都可以 )

2. 远程控制软件 tightvnc 客户端和服务器端

3. 开发调试 IDE 工具 Eclipse vim

其实要调试 hadoop 分布式程序和进行 java 远程调试是一样的,为什么呢?因为他们就是一回事儿,哈哈!

1.        启动 Eclipse ,将 hadoop 程序装载到工程里面

2.        修改 bin/hadoop 代码加入 java 远程调试选项:

  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_TASKTRACKER_OPTS

  -agentlib:jdwp=transport=dt_socket,address=xxxx,server=y,suspend=y"

假设我们要调试 jobtracker 的代码,我们将 bin/hadoop 代码修改如下 :

elif [ "$COMMAND" = "tasktracker" ] ; then

  CLASS=org.apache.hadoop.mapred.TaskTracker

    HADOOP_OPTS="$HADOOP_OPTS $HADOOP_TASKTRACKER_OPTS -agentlib:jdwp=transport=dt_socket, address=8083, server=y, suspend=y"

3.        启动 hadoop

4.        Eclipse 里面跟踪调试

a)          Debug configuration 里面新建一个 Java Remote Application

b)         设置断点

c)         启动分布式任务

d)         这个时候任务就会你设置的断点处,停下来让你进行接下来的调试跟踪

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值