首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipse远程调试不能在伪分布式模式下使用hadoop

Eclipse远程调试不能在伪分布式模式下使用hadoop
EN

Stack Overflow用户
提问于 2012-08-31 05:42:11
回答 2查看 1.6K关注 0票数 1

在独立模式下运行hadoop时,Eclipse的远程调试没有问题。但是,当我在伪分布式模式下运行hadoop时,它不起作用。下面是我如何在伪分布式模式下尝试使用hadoop进行eclipse远程调试:

我在hadoop脚本中添加一行代码,如下所示:

代码语言:javascript
复制
#added this line to enable remote debugging
HADOOP_OPTS="$HADOOP_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5000"

# run it
exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"

然后我创建一个远程调试配置,如下所示:

我从命令行运行作业,它会说出它应该做的事情:

代码语言:javascript
复制
Listening for transport dt_socket at address: 5000

然后,我返回到eclipse并运行调试配置。它会像应该的那样进入我的main()函数:

但是,它没有命中我在映射器或缩减程序中设置的任何断点。

这里有什么问题?为什么它在独立模式下与hadoop一起工作,而不是在伪分布式模式下工作?是否可以在伪分布式模式下使用hadoop进行远程调试?如果没有,在Eclipse中调试mapreduce代码的“正确”方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-05 13:12:26

请参阅上面Lorand的评论。远程调试只能在独立模式下工作。

票数 2
EN

Stack Overflow用户

发布于 2013-07-18 16:35:48

您可以指定:

代码语言:javascript
复制
<property>
  <name>mapred.map.child.java.opts</name>
  <value>-Xdebug -Xrunjdwp:transport=dt_socket,address=5001,server=y,suspend=y</value>
</property>

这将在调试模式下启动map-task。另请参阅Debugging multiple hadoop jvms with Eclipse

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12205967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档