「hadoop權威指南 - 湯姆白」一書的摘要是:什麼是確切的Map Reduce WorkFlow?
用戶映射函數和用戶的reduce函數之間的所有邏輯都稱爲shuffle。然後,隨機播放跨越地圖和縮小。在用戶的map()函數之後,輸出位於內存循環緩衝區中。當緩衝區已滿80%時,後臺線程開始運行。後臺線程會將緩衝區的內容輸出到溢出文件中。此泄漏文件按鍵分區。在每個分區中,鍵值對按鍵排序。排序後,如果啓用了組合器功能,則會調用組合器功能。所有的溢出文件將被合併到一個MapOutputFile中。所有Map任務的MapOutputFile將通過網絡收集以減少任務。減少任務將做另一種。然後調用用戶的Reduce函數。
所以問題是:
1)根據以上總結,這是流程:
映射 - Partioner - 排序 - 合 - 洗牌 - 排序 - 減速機 - 輸出
1a。)這是流量還是別的嗎?
1b。)你能用一個例子說出上面的流程來說明單詞計數的例子嗎(我在網上找到的那個不是那個詳盡的)?
2.)所以mappers階段輸出是一個大文件(MapOutputFile)?這是一個大文件,並將鍵值對傳遞給相應的reducer?
3.)爲什麼排序第二次發生,當數據已被排序&合併時傳遞到其各自的reducer?
4.)說如果mapper1在Datanode1上運行,那麼reducer1是否需要在datanode1上運行?或者它可以在任何Datanode上運行?