如何将调试器附加到远程Hadoop实例

时间:2013-05-31 07:54:18

标签: debugging hadoop jdb

我不是在寻找依赖debugging的所谓“println”解决方案。我的意思是将真正的调试器附加到正在运行的Hadoop实例,并从另一台机器上调试它。

这可能吗?怎么样? JDB?

2 个答案:

答案 0 :(得分:4)

LINK

给出了很好的答案

要调试任务跟踪器,请执行以下步骤。

  1. 编辑conf / hadoop-env.sh以获得以下

    export HADOOP_TASKTRACKER_OPTS =“ - Xdebug -Xrunjdwp:transport = dt_socket,address = 5000,server = y,suspend = n”

  2. 启动Hadoop(bin / start-dfs.sh和bin / start-mapred.sh)

  3. 它将阻止等待调试连接
  4. 使用调试配置中的Eclipse“Remote Java Application”连接到服务器并添加断点
  5. 运行地图缩减作业

答案 1 :(得分:1)

我从来没有这样做过,因为我宁愿我的“真正”工作不受调试开销的影响(在某些情况下,可能会改变环境条件):我在“本地”调试伪 - 实例(eclipse中的正常调试绝对没有问题),一旦我隔离了问题(通过使用例如计数器),就会从实时环境中复制特定文件。