換個角度理解雲計算之MapReduce 2

2022-03-02 04:45:44 字數 1307 閱讀 3320

3.combiner操作

前面講完map操作,總結一下就是:乙個大檔案,分成split1~5,對應於map1~5,每乙個map處理乙個split,每乙個split的每一行,會用每乙個map的map方法去處理,經過上面操作,最終輸出了5個中間結果。

對於這5個中間結果的每乙個來說,都有很多行,每一行是key   value格式的,如hello  1,這樣子,在傳給reducer之前,為了減少傳輸的資料量,可以增加乙個combiner過程,把每個中間結果進行化簡。因為每個中間結果可能有相同的鍵值的行,如:hello 1,hello  1,通過combiner,就可以合併成一行:hello 2.

之後,就可以把combiner的輸出傳入reducer,而不是map的輸出傳入reducer。combiner需要自己指定,當然也可以不寫。

4.reducer操作

reduce操作分成了三個過程

(1)shuffle

前面的map或者combiner的輸出,一共有有5份中間結果,其中的每乙份結果,按照key值可以分成(預先定義的r份),由r個reduce來操作(通過partitioner介面完成)。因此r個reduce需要向5個中間結果都取一段資料5個中間結果的其中每一結果是由r個reduce操作的。

簡單來說:對於其中某乙個個reduce1來說,分別從map1~map5裡面把需要的那乙份copy至本地,然後再合併merge一下,供sort使用。

(2)sort

對於每乙個reduce來說,進來的資料為5個中間結果的中的一段,即shuffle的結果,裡面可能有重複的key,因此作為reduce輸入之前,會有乙個sort操作,把相同key的整合一下,例如,整合成,作為reduce的輸入,所以reduce的輸入的value一般是iterable的。

(3)reduce

這裡是我們編寫程式的地方了,一共r個reduce,就能產生r個中間結果了。

注意:shuffle、sort、reduce是在reduce節點完成的,而不是在map節點完成,有些書籍上寫的是錯的!

囉囉嗦嗦竟然講了這麼多,上乙個我自己隨手畫的圖,湊合看吧。

從資源取用的角度理解雲計算

從資源取用的角度理解雲計算 從資源取用的角度理解雲計算,主要可以從四個方面進行解讀,具體如下 硬體和軟體都是資源,通過網路以服務的方式提供給使用者。在雲計算中,資源已經不限定在諸如處理器機時 網路頻寬等物理範疇,而是擴充套件到了軟體平台 web服務和應用程式的軟體範疇。傳統模式下自給自足的it運用模...

換個角度理解正規表示式

作者資訊和本宣告。否則將追究法律責 其實linux 系統中處理文字的工具還有很多,功能也遠比我們所能想象到的任何工具都要強大。要想真正掌握它們,就必須要掌握一項基本技能 正規表示式。正規表示式已經無處不在了,無論是網路文章,還是很多圖書,亦或是教材也都在講解正規表示式,我們也堅信正在讀本書的你也早已...

雲計算的理解

什麼是雲計算?雲計算 cloud computing 是一種基於網際網路的超級計算模式,在遠端的資料中心裡,成千上萬臺電腦和伺服器連線成一片電腦雲。因此,雲計算甚至可以讓你體驗每秒 10萬億次的運算能力,擁有這麼強大的計算能力可以模擬核 氣候變化和市場發展趨勢。使用者通過電腦 筆記本 手機等方式接入...