您好,登錄后才能下訂單哦!
本篇內容主要講解“MapReduce編程步驟是怎樣的”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MapReduce編程步驟是怎樣的”吧!
Hadoop三大模塊:分布式存儲HDFS、分布式計算MapReduce、資源調度引擎Yarn
我們在前面幾節課已經介紹了hadoop軟件在是怎樣存儲數據的(HDFS),從今天開始的后面幾節課,我們來
學習一下:MapReduce分布式計算框架,這是一個比較難理解同時又非常重要的內容,雖然大部分情況下
我們都是使用Hive、spark之類的工具而不是直接寫MapReduce程序來處理業務,但是,這些工具還是基于
MapReduce的思想來實現的,所以,現在能很好的理解和掌握MapReduce編程,這對以后的學習十分有益。
MapReduce是一個分布式運算程序的編程框架,是用戶開發“基于Hadoop的數據分析應用”的核心框架。
MapReduce核心功能是將用戶編寫的業務邏輯代碼和自帶默認組件整合成一個完整的分布式運算程序,并發運行在一個Hadoop集群上。
MapReduce思想在生活中處處可見。或多或少都曾接觸過這種思想。MapReduce的思想核心是“分而治處”,適用于大規模數據處理場景。
Map負責“分”,即把復雜的任務分解為若干個“簡單的任務”來并行處理。(拆分的前提:這些小任務可以并行計算,彼此間幾乎沒有依賴關系。)
Reduce負責“合”,即對map階段的結果進行全局匯總。
這兩個階段合起來正是MapReduce思想的體現。
還有一個比較形象的例子解釋MapReduce:
例子一:我們要數圖書館中的所有書。A同學數1號書架,B同學數2號書架。這就是“Map”。同學越多,數書就越快。
然后把同學的統計數加在一起。這就是"Reduce"。
MapReduce由兩個階段組成:
Map階段(切分成一個個小的任務)
Reduce階段(匯總小任務的結果)
這個是不太容易理解的地方,一時想不明白不著急,先死記下來,慢慢來。
mapreduce編程大致分為三個階段,一共8個步驟,下面簡單說明一下這8個步驟,
我們將在下一節課中,以一個實例來詳細介紹這8步驟。
第一步:設置inputFormat類,將數據切分成key,value對,輸入到第二步
第二步:自定義map邏輯,處理我們第一步的輸入kv對數據,然后轉換成新的key,value對進行輸出
第三步:對上一步輸出的key,value對進行分區。(相同key的kv對屬于同一分區)
第四步:對每個分區的數據按照key進行排序
第五步:對分區中的數據進行規約(combine操作),降低數據的網絡拷貝(可選步驟)
第六步:對排序后的kv對數據進行分組;分組的過程中,key相同的kv對為一組;將同一組的kv對的所有value放到一個集合當中(每組數據調用一次reduce方法)
第七步:對多個map的任務進行合并,排序,寫reduce函數自己的邏輯,對輸入的key,value對進行處理,轉換成新的key,value對進行輸出
第八步:設置將輸出的key,value對數據保存到文件中
看到這里是不是一頭霧水,沒關系,這節課只要理解一點,為什么要有MapReduce這種計算框架,其實,就是充分利用集群資源,把一個很大數據量的任務
先折分成幾個小任務,然后把幾個小任務的計算結果合并成最終
的結果,這樣,同一時間就充分利用了集群的計算資源來計算,而不用一個一個的排隊等待。
到此,相信大家對“MapReduce編程步驟是怎樣的”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。