【问题标题】:How can i debug Hadoop map reduce [duplicate]我如何调试Hadoop map reduce [重复]
【发布时间】:2012-09-23 15:26:02
【问题描述】:

我正在尝试构建一个 map reduce 作业。

它会运行到完成,但最后会出现奇怪的数据。

当我尝试使用 system.out.println("debug data") 对其进行调试时 它没有显示在屏幕上。

使用 java API 生成外部日志文件,尝试使用 log.severe("log data") 或使用 log4j 记录器方法 log.info(log data) 打印到屏幕也不起作用/

只有在 map reduce 作业中出现异常时,我才看到我的调试消息。

如何修复它以便我可以在文件或屏幕上看到我的调试消息?

【问题讨论】:

标签: java debugging logging hadoop mapreduce


【解决方案1】:

由于您正在处理大数据,因此跟踪消息的大小可能很大,因此可能会导致问题。考虑“system.out.println”样式日志的替代方案很有用:

Counters 和 MultipleOutputs 的最大优点 - 您可以通过编程方式访问它们,如果是 MultipleOutputs,您甚至可以运行 map/reduce 任务以从日志中提取一些统计信息。

在生产环境中进行调试的另一种替代方法是单元测试,MiniMRCluster 将帮助您在单元测试期间测试您的 map-reduce 作业。

【讨论】:

    【解决方案2】:

    我在 Eclipse 中使用 maven 开发我的 map/reduce 代码来构建运行时 jar 并管理依赖项。在我的机器上安装并运行 hadoop 以支持 HDFS 后,我可以在 Eclipse 中运行和调试我的代码。这意味着在 Eclipse 调试透视图中使用断点和其他所有内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-07
      • 2011-07-21
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 2016-10-25
      相关资源
      最近更新 更多