如何将调试器连接到远程Hadoop实例



我不是在寻找这些依赖于println的所谓"调试"解决方案。我的意思是在运行的Hadoop实例上附加一个真实的调试器,并在不同的机器上调试它。

这可能吗?如何?多彬吗?

链接

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

  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. 运行map reduce作业

我从来没有这样做过,因为我宁愿我的"真实"作业不受调试开销的阻碍运行(在某些情况下,调试开销可能会改变环境条件):我针对一个伪实例进行"本地"调试(eclipse中的正常调试绝对没有问题),一旦我隔离了(通过使用例如计数器)问题所在,就从活动环境中复制特定文件。

相关内容

  • 没有找到相关文章

最新更新