我知道,在映射器和減速機之間的中間步驟,Hadoop的將整理和的道路上減速分區數據。已經可以分區輸入數據改善hadoop處理嗎?
因爲我已經有分區數據在我的輸入處理的映射,是有辦法來利用它,並可能加快中間處理所以沒有更多的排序或分組,通過將發生?
添加一些細節:
正如我存儲在S3上的數據,讓我們說我只有在我的桶的兩個文件。第一個文件將存儲下半部分用戶ID的記錄,另一個文件將存儲用戶ID的上半部分的值。每個文件中的數據不一定需要排序,但可以保證與用戶有關的所有數據都位於同一個文件中。
如:
\mybucket\file1
\mybucket\file2
File1 content:
User1,ValueX
User3,ValueY
User1,ValueZ
User1,ValueAZ
File2 content:
User9,ValueD
User7,ValueB
User7,ValueD
User8,ValueB
從我讀,我可以用一個數據流作業和兩個映射器,並且每個映射器將在這兩個文件中的一個吸,但整個文件。這是真的?
接下來, 假設映射器只輸出一次唯一的密鑰,相關的值就是該密鑰的出現次數。 (我認識到它更多的是減速器的責任,但僅僅作爲我們的例子)
是否可以禁用Mapper中那些輸出鍵的排序和分區,並讓它們自由飛行至減速器?
或者給出另一個例子: 想象一下,對於每個唯一鍵,我的所有輸入數據都只包含一行,並且我不需要在減速器的最終輸出中對數據進行排序。我只想爲每個密鑰哈希值。我可以在減速器之前禁用排序和分區步驟嗎?
難道你就灑下更多的光線你的意思是「分區輸入到映射器」,也許是輸入數據的樣本呢? – Chaos