我想调试WordCount示例Cloudera Hadoop但我不能。我记录了映射器和reducer类,但在控制台不会出现在日志中。日志没有出现在控制台:([Hadoop问题]
我附上图片。 在第一个图像中,Java日志。
在第二imagen画质,结果日志。它不会出现第一个:( http://i56.tinypic.com/2eztkli.png
任何人都知道??非常感谢!!
我想调试WordCount示例Cloudera Hadoop但我不能。我记录了映射器和reducer类,但在控制台不会出现在日志中。日志没有出现在控制台:([Hadoop问题]
我附上图片。 在第一个图像中,Java日志。
在第二imagen画质,结果日志。它不会出现第一个:( http://i56.tinypic.com/2eztkli.png
任何人都知道??非常感谢!!
您正在做“hadoop jar ...”,因此您正在使用实际的Hadoop集群(可能是单个节点)开始您的工作。
这意味着所有日志都由群集完成,而不是在控制台上完成。 你在控制台上看到的基本上只是一个进度指示器。
您的工作分为一个或多个地图任务和一个或多个减少任务。这些任务中的每一个都是独立的java进程,并且具有单独的日志记录(由多个文件组成)。
你会发现在$ HADOOP_LOG_DIR/userlogs
这些日志文件因为很多东西是并行做你不希望这些日志文件是“一个”巨大的日志文件。这将成为一个无用的混乱。
现在的学习和发展的Hadoop应用程序存在了一个更简单的方法:只要通过简单地启动它作为一个正常的Java应用程序以本地模式运行你的应用程序:Java的罐子...
如果你想显示信息在控制台然后做System.out.println(“blah”);在您的Java作业中,它尤其适用于传递参数(例如,如果参数错误时使用)以及在您的jar中执行多个单独作业等等。如果您使用Hadoop日志,那么筛选Hadoop日志非常麻烦正在做真正的工作。
哦,这是一个简单的修复。使用System.out.println(),然后查看jobtracker的HTML界面。转到已完成Map或Reduce的任务,其中包含println,然后如果您继续执行该任务的日志报告,则会发现您的输出已打印在那里。