2010-12-09 42 views

回答

2

您正在做“hadoop jar ...”,因此您正在使用实际的Hadoop集群(可能是单个节点)开始您的工作。

这意味着所有日志都由群集完成,而不是在控制台上完成。 你在控制台上看到的基本上只是一个进度指示器。

您的工作分为一个或多个地图任务和一个或多个减少任务。这些任务中的每一个都是独立的java进程,并且具有单独的日志记录(由多个文件组成)。

你会发现在$ HADOOP_LOG_DIR/userlogs

这些日志文件因为很多东西是并行做你不希望这些日志文件是“一个”巨大的日志文件。这将成为一个无用的混乱。

现在的学习和发展的Hadoop应用程序存在了一个更简单的方法:只要通过简单地启动它作为一个正常的Java应用程序以本地模式运行你的应用程序:Java的罐子...

0

如果你想显示信息在控制台然后做System.out.println(“blah”);在您的Java作业中,它尤其适用于传递参数(例如,如果参数错误时使用)以及在您的jar中执行多个单独作业等等。如果您使用Hadoop日志,那么筛选Hadoop日志非常麻烦正在做真正的工作。

1

哦,这是一个简单的修复。使用System.out.println(),然后查看jobtracker的HTML界面。转到已完成Map或Reduce的任务,其中包含println,然后如果您继续执行该任务的日志报告,则会发现您的输出已打印在那里。

相关问题