【问题标题】:how to attach debugger to remote Hadoop instance如何将调试器附加到远程 Hadoop 实例
【发布时间】:2013-05-31 07:54:17
【问题描述】:

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

这可能吗?如何? jdb?

【问题讨论】:

  • 您如何知道要附加到哪个任务跟踪器?还是那不重要?

标签: debugging hadoop jdb


【解决方案1】:

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“远程 Java 应用程序”连接到服务器并添加断点
  5. 运行 map reduce Job

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2010-10-07
      • 1970-01-01
      • 2010-09-26
      • 2016-10-30
      • 1970-01-01
      • 2011-12-07
      • 2017-11-06
      • 2017-12-30
      相关资源
      最近更新 更多