Java 如何调试Hadoop map reduce
我正试图建立一个地图缩小作业 它一直运行到完成,但最后会显示奇怪的数据 当我尝试使用system.out.println(“调试数据”)调试它时 它不显示在屏幕上 使用JavaAPI生成外部日志文件,尝试使用log.severe(“日志数据”)或使用log4j logger方法log.info(日志数据)打印到屏幕上也不会起作用/ 只有当map reduce作业中出现异常时,我才能看到调试消息,但这一切都不起作用Java 如何调试Hadoop map reduce,java,debugging,logging,hadoop,mapreduce,Java,Debugging,Logging,Hadoop,Mapreduce,我正试图建立一个地图缩小作业 它一直运行到完成,但最后会显示奇怪的数据 当我尝试使用system.out.println(“调试数据”)调试它时 它不显示在屏幕上 使用JavaAPI生成外部日志文件,尝试使用log.severe(“日志数据”)或使用log4j logger方法log.info(日志数据)打印到屏幕上也不会起作用/ 只有当map reduce作业中出现异常时,我才能看到调试消息,但这一切都不起作用 如何修复它,以便在文件或屏幕上查看调试消息?我使用maven在Eclipse中开发
如何修复它,以便在文件或屏幕上查看调试消息?我使用maven在Eclipse中开发map/reduce代码,以构建运行时jar并管理依赖关系。一旦在我的机器上安装并运行hadoop以支持HDFS,我就可以在Eclipse中运行和调试代码。这意味着在Eclipse调试透视图中使用断点和其他一切 由于您正在处理大数据,因此跟踪消息的大小可能很大,因此可能会导致问题。考虑“Stuto.Out.PrtLn”风格日志记录选项:是有用的。
- 使用计数器(这是一个简单的示例)
- 使用将日志写入HDFS
在生产环境中调试的另一种替代方法是单元测试,MinimorCluster将帮助您在单元测试期间测试map reduce作业。使用println不是调试。这就是跟踪。也许你没有足够的日志记录()?甚至可以重定向System.out.println(),这可能会有所帮助。Hadoop为自己的作业跟踪日志系统捕获System.out.thx,这似乎足够了,希望现在我能设法解决问题,这是否回答了您的问题?