2009-12-04 83 views

回答

2

我通過使用S3工具箱直接從我的reducer方法將輸出寫入S3來完成此操作。由於我在EC2上運行,所以這是快速而自由的。

一般而言,您希望Hadoop儘可能地處理您的輸入和輸出,以便更簡潔的映射器和縮減器;當然,您還想在流水線的最後寫入S3,以讓Hadoop的代碼在HDFS上運行。在任何情況下,我建議您進行所有數據分區,並在最終減少任務中將整個輸出集寫入S3,每個S3文件一組。這使得代碼中儘可能少的編寫器邏輯成爲可能。這爲我付出了代價,因爲我最終使用了一個最小化的Hadoop S3工具箱,我用它來處理多個任務流。

因爲S3/S3n文件系統還不成熟,所以我需要在我的reducer代碼中寫入S3;他們現在可能會更好。

0

你也知道MultipleOutputFormat嗎? 它與S3無關,但通常它允許將輸出寫入多個文件,實現給定的邏輯。

相關問題