2012-04-23 95 views
0

在hadoop文件系統中,我有兩個文件,分別是X和Y.通常,hadoop會生成大小爲64 MB的文件X和Y的塊。是否有可能迫使hadoop分割這兩個文件,使得從X中32 MB創建64 MB塊並從Y中創建32 MB。換句話說,是否可以重寫文件分區的默認行爲?hadoop中的文件分割/分區

+0

在將文件轉儲到HDFS之前預處理文件可能更有意義。做你喜歡的東西是可能的,只是相當醜陋。 – rICh 2012-12-02 03:59:50

回答

0

文件分區是FileInputFormat的函數,因爲它在邏輯上取決於文件格式。您可以使用任何其他格式創建自己的輸入。所以每個文件 - 你可以做到。
在單個分割聲音中混合兩部分不同的文件會產生問題 - 因爲文件是處理的基本單元。
爲什麼你有這樣的要求? 我看到下面的要求。可以說數據局部性必須至少部分被犧牲 - 我們可以將地圖本地運行到一個文件,但不能同時運行到兩個文件。
我會建議構建某種「文件對」文件,將其放入分佈式緩存,然後在映射函數中加載來自HDFS的第二個文件。

+0

我的應用程序是這樣的,我需要一個地圖任務中的兩個文件的一部分來處理它們。如果我在地圖任務中只有一個文件的內容,那麼它不能被獨立處理。 – 2012-04-23 19:00:55

+0

我正在做你所建議的。謝謝。 – 2012-04-25 03:29:56