2013-03-03 137 views
1

我想要的Hadoop(0.22.0)寫出來的內容轉換成不同的文件,如 部分-R-00000
部分-R-00001
部分-R-00002
部分-R-00003
每個減少工作一個不同的文件。 我知道我可以使用MultipleOutputs-Class,但這隻讓我改變'part'-phrase,但這不是我想要的。我想能夠說出哪個reducer使用哪個輸出文件以及最終得到的數字。不同的輸出文件

+1

你是否希望打破這個漂亮的文件命名約定?作業完成後,您可以隨時更改文件名稱。 – www 2013-03-03 19:05:13

+0

如何在作業完成後更改文件名?在reduce類的清理中,文件不存在。之後我再也沒有任何控制了。 - 我讀過源代碼,看起來最後的數字來自TaskID,這是reducer的唯一標識符。所以我試圖將減速器的數量設置爲9(我不想參加-r-00001 ... part-r-00009),但是仍然只有部分-r-00001:/ – Nozdrum 2013-03-03 19:25:26

+0

哦,這個人是這個job.waitForCompletion是我在尋找的東西:D很感謝你。 – Nozdrum 2013-03-03 19:54:52

回答

1

當然你有控制權。作業完成時(例如job.waitForCompletion(true)之後)。您知道輸出路徑和使用的減速器數量。只是重命名文件,這是所有....要運行更多的減速器,你應該白色分區類。