【发布时间】:2013-05-31 07:54:17
【问题描述】:
我不是在寻找这些依赖于println 的所谓“debugging”解决方案。我的意思是将一个真正的调试器附加到一个正在运行的 Hadoop 实例上,然后从另一台机器上调试它。
这可能吗?如何? jdb?
【问题讨论】:
-
您如何知道要附加到哪个任务跟踪器?还是那不重要?
我不是在寻找这些依赖于println 的所谓“debugging”解决方案。我的意思是将一个真正的调试器附加到一个正在运行的 Hadoop 实例上,然后从另一台机器上调试它。
这可能吗?如何? jdb?
【问题讨论】:
在LINK 得到很好的答复
要调试任务跟踪器,请执行以下步骤。
编辑 conf/hadoop-env.sh 以获取以下内容
export HADOOP_TASKTRACKER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=5000,server=y,suspend=n"
启动 Hadoop(bin/start-dfs.sh 和 bin/start-mapred.sh)
【讨论】:
我从来没有这样做过,因为我宁愿我的“真实”工作不受调试开销的阻碍(在某些情况下,无论如何都可以改变环境条件):我在“本地”调试一个伪 -实例(在 eclipse 中正常调试绝对没有问题),一旦我隔离(通过使用例如计数器)问题所在,就从实时环境中复制特定文件。
【讨论】: