2010-12-09 39 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,然後如果您繼續執行該任務的日誌報告,則會發現您的輸出已打印在那裏。

相關問題