1 map函數的輸出先由MapReduce框架處理,然后再被發送到reduce函數。這一處過程根據鍵來對鍵/值對進行排序和分組。
2整個數據流的例子如圖2-1所示。在圖的底部是Unix的管道,模擬整個MapReduce的流程。
圖2-2MapReduce中單一reduce任務的數據流圖
10reduce任務的數目并不是由輸入的大小來決定,而是單獨具體指定的。如果有多個reducer,map任務會對其輸出進行分區,為每個reduce任務創建一個分區(partition)。每個分區包含許多鍵(及其關聯的值),但每個鍵的記錄都在同一個分區中。分區可以通過用戶定義的partitioner來控制,但通常是用默認的分區工具,它使用的是hash函數來形成"木桶"鍵/值,這種方法效率很高。
一般情況下,多個reduce任務的數據流如圖2-3所示。此圖清楚地表明了map和reduce任務之間的數據流為什么要稱為"shuffle"(洗牌),因為每個reduce任務的輸入都由許多map任務來提供。shuffle其實比此圖所顯示的更復雜,并且調整它可能會對作業的執行時間產生很大的影響。
圖 2-3多個reduce任務的MapReduce數據流
11有可能不存在reduce任務,不需要shuffle的時候,這樣的情況是可能的,因為處理可以并行進行。在這種情況下,唯一的非本地節點數據傳輸是當map任務寫入到HDFS中(見圖2-4)。
圖 2-4MapReduce中沒有reduce任務的數據流
12 在集群上MapReduce作業的數量被可用帶寬限制,因此要保證map和reduce任務之間傳輸的代價是最小的。Hadoop允許用戶聲明一個combiner,運行在map的輸出上-- 該函數的輸出作為reduce函數的輸入。由于combiner是一個優化方法,所以Hadoop不保證對于某個map的輸出記錄是否調用該方法,調用該方法多少次。換言之,不調用該方法或者調用該方法多次,reducer的輸出結果都一樣。
combiner的規則限制著可用的函數類型。Hadoop權威指南中舉了一個求最高氣溫和平均氣溫的例子,很好的說明了這點。求最高氣溫就可以使用,求平均氣溫使用可能出錯。因此combiner并不能取代reduce函數。雖然它可以幫助減少map和reduce之間的數據傳輸量,但是是否在MapReduce作業中使用combiner是需要慎重考慮的。
13Hadoop提供了一個API來運行MapReduce,并允許你用除java以外的語言來編寫自己的map和reduce函數。Hadoop流使用Unix標準流作為Hadoop和程序之間的接口,所以可以使用任何語言,只要編寫的MapReduce程序能夠讀取標準輸入,并寫入到標準輸出。流適用于文字處理,在文本模式下使用時,它有一個面向行的數據視圖。
到此,關于“MapReduce是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注本站網站,小編會繼續努力為大家帶來更多實用的文章!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
房地產股票有哪些?房地產股票有綠地控股、順發恒業、蘇寧環球、世聯行、泰禾集團、中交地產、中國武夷、國興地產、津濱發展、嘉凱城、福星股份、天?;?、銀億股份等。房地產股票指的是房地產開發商或者公司發給股東當作入股憑證并以此獲得股息的一類有價證券。它代表著股東對企業或公司的財產權利。其發行方式一般是由房地產開發機構通過銀行進行金融性的發行。例中國第一家發行房地產股票的上海興業房產股份有限公司,便是委托...
官方旗艦店是什么意思?天貓官方旗艦店指一些品牌商在天貓商城開設的品牌官方旗艦店。一般由品牌商直接運營,也有些有品牌商與外包電子商務公司合作經營。天貓旗艦店由于商家全部由品牌商直接或者間接合作運營,不但為品牌商提供了全新的銷售渠道,也為消費者購買品牌商品提供了正品保障,也正因如此,天貓品牌旗艦店得到越來越多消費者的關注。旗艦店和官方旗艦店有什么區別?認證方式不同:自營旗艦店是指廠家自己經營的旗艦店;...
銀行個人怎么貸款五萬?銀行個人貸款五萬可以通過信用貸款來貸,因為五萬以內的貸款都屬于小額貸款,貸款人只需要準備好申請貸款的相關證件基本上就可以申請成功。當然申請之前還需要保證本人擁有穩定的工作和固定的收入,這樣銀行才會判斷個人擁有獨立償還貸款的能力,給予貸款人相應的款項。銀行貸款5萬要什么條件?1、年滿20-55周歲,具有完全民事行為能力的自然人;具有當地常住戶口或長期居住證明,有固定的住所。2、...