2012-04-18 49 views

回答

1

地圖任務的輸出按分區號排序。每個分區號對應一個reducer。當減速器拉出輸出時,文件指針將偏移到減速器的分區編號的起始位置並開始讀取。當然,爲了實現這一點,在映射器端維護一些分區號到文件偏移量表。

+0

從代碼中,它看起來像合併所有溢出文件後地圖任務完成。通過這種方式可以如何保持「某些分區號對文件偏移表」的作用?另外,我可以在ReduceTask中看到,它會打開一個http連接來獲取中間數據,但我在地圖任務一側看不到任何http處理程序。 TaskTracker是否充當一個http服務器來處理reduce http請求?我對此表示懷疑。 – user1080611 2012-04-18 21:00:04

+0

在地圖的末尾,輸出(多次溢出或1次溢出)按分區號排序。分區編號到文件偏移量表也被寫入。該表不保存在內存中。目前的Hadoop(1.0/0.20.xxx)使用jetty來切斷HTTP請求。碼頭可以在一個線程中啓動。你必須閱讀代碼才能獲得更多細節。當前中繼線使用netty而不是碼頭。 – root1982 2012-04-19 02:10:54

相關問題