Java 谷歌计算引擎上Hadoop的标准输出

Java 谷歌计算引擎上Hadoop的标准输出,java,debugging,hadoop,logging,google-compute-engine,Java,Debugging,Hadoop,Logging,Google Compute Engine,我正试图在谷歌计算引擎上调试一个运行在Hadoop上的程序,它是一个.jar文件。我尝试在reducer代码中同时使用System.out.println()和context.write()进行调试输出,但在任何地方都找不到它们的输出。我能找到的唯一日志是我的Google bucketgs:/my_bucket/Thread logs/my_name/logs/application_####和存储在$hadoop_install_dir$/logs/中的本地日志,但它们都没有我想要的输出。在以

我正试图在谷歌计算引擎上调试一个运行在Hadoop上的程序,它是一个.jar文件。我尝试在reducer代码中同时使用
System.out.println()
context.write()
进行调试输出,但在任何地方都找不到它们的输出。我能找到的唯一日志是我的Google bucket
gs:/my_bucket/Thread logs/my_name/logs/application_####
和存储在
$hadoop_install_dir$/logs/
中的本地日志,但它们都没有我想要的输出。在以前的日志中,我可以看到我的log4j没有正确初始化,但我不确定这是否是问题所在和/或如何解决

如果您使用“单击部署”,您应该能够从地图中找到标准输出并减少实际工作节点上的任务,
${HADOOP\u INSTALL\u DIR}/logs/userlogs/application\u*/container*/stdout
,或者在
/hadoop/logs/userlogs/application.*/container*/stdout
下,如果您使用
bdutil
进行部署。

userlogs文件夹为空。这可能是log4j设置的问题吗?嗯,log4j设置至少不会影响System.out.println。如果是旧作业,则用户日志可能已被删除,因为
mapreduce.job.userlog.retain.hours
默认为24小时(如果未在
.mapred site.xml
中指定)。您是否尝试过使用一个快速示例mapreduce进行测试,其中包括System.out.println()在您的map中添加一组并减少任务,然后尝试“grep-R/hadoop/logs/userlogs/home/hadoop/hadoop安装/logs/userlogs”?谢谢,我终于在gs://my_bucket/warn logs目录中找到了所需的输出