一、MapReduce
(1)MapReduce概要介紹
MapReduce是一種編程模型,可用于大規(guī)模數(shù)據(jù)集(數(shù)據(jù)量大于1TB的數(shù)據(jù)集)的并行運算(根據(jù)百度百科:并行運算是一種一次可執(zhí)行多個指令的算法,可提高計算速度)。MapReduce可使程序的并行運算更加簡單。
Map(映射)是于各個節(jié)點對本地數(shù)據(jù)的預處理操作。 Reduce(歸約)是將Map預處理操作后的數(shù)據(jù)匯總。Reduce可使編程人員不必關心如何實現(xiàn)分布式并行程序,基于Reduce,編程人員可只關注業(yè)務數(shù)據(jù)處理。
(2)處理模型
MapReduce框架負責處理并行計算中的復雜問題,包括:分布式存儲、作業(yè)調度、負載均衡、容錯處理、網(wǎng)絡通信等。
MapReduce的處理流程如圖一所示。
首先,數(shù)據(jù)在數(shù)據(jù)節(jié)點被劃分為數(shù)據(jù)塊(個人理解:數(shù)據(jù)塊即圖一中的split),MapReduce確定待處理的數(shù)據(jù)塊數(shù)量并確定每個記錄(個人理解:此處記錄可被理解關系數(shù)據(jù)庫的一行數(shù)據(jù))在數(shù)據(jù)塊中的位置;
然后,劃分后的數(shù)據(jù)塊作為Map的輸入;
再然后,Map的輸出數(shù)據(jù)需要經(jīng)過sort(個人理解:分類)、copy(個人理解:復制)、merge(個人理解:合并)操作成為Reduce的輸入,Reduce的輸入數(shù)據(jù)間沒有交集,系統(tǒng)中處于Reduce運行的節(jié)點的數(shù)量等于merge操作后的數(shù)據(jù)數(shù)量;
最后,輸出Reduce運行后的數(shù)據(jù)。
圖一,圖片來源:學堂在線《大數(shù)據(jù)導論》
二、Spark
(1)Spark概要介紹
Spark是針對大規(guī)模數(shù)據(jù)處理的快速通用引擎,其功能是類似MapReduce的計算引擎。
(2)Spark的特點
1)計算速度快。Spark計算速度是Hadoop計算速度的一百倍。
2)可用性高。Spark可使用Java、Python、R、SQL等編程語言。
3)通用性。Spark由一系列解決處理復雜問題的組件構成,可處理多種類型有關數(shù)據(jù)庫的復雜問題。
4)可運行于多種環(huán)境中,運行環(huán)境包括Hadoop等。
圖片來源:學堂在線《大數(shù)據(jù)導論》
(3)Spark的體系架構
1)Cluster Manager:Cluster Manager是主節(jié)點,控制整個集群,監(jiān)控 Worker Node。
2)Worker Node:Worker Node是從節(jié)點,負責控制計算節(jié)點,啟動Executor 或者Driver
3)Driver:運行Application(個人理解:此處Application指某一應用)的main()函數(shù)
4)Executor:為Application運行Worker Node上的一個進程。
圖片來源:學堂在線《大數(shù)據(jù)導論》
(4)RDD
RDD(Resilient Distributed Dataset)被稱為彈性分布式數(shù)據(jù)集,利用SparkContext實例(根據(jù)網(wǎng)絡資料理解:每個SparkContext實例是Spark的一個應用)創(chuàng)建的對象均為RDD。RDD是不可變、可分區(qū)、其內部元素可并行計算的集合,數(shù)據(jù)可在RDD中運行RDD的自有函數(shù)。
RDD的函數(shù)被稱為RDD算子,RDD算子分為Transformation和Action兩種類型。Transformation具有類似于MapReduce的功能,Action的功能包括:觸發(fā)RDD計算、統(tǒng)計RDD元素個數(shù)等。
RDD的特點包括:自動容錯、位置感知性調度、可伸縮性(個人理解:數(shù)據(jù)量的多少對RDD的運行影響較小)、可在已有RDD的基礎上創(chuàng)建新的RDD、延遲執(zhí)行(延遲執(zhí)行即Transformation只有在Action被觸發(fā)后才執(zhí)行)。
另外,RDD允許用戶在執(zhí)行多個查詢時可將工作集緩存在內存中,后續(xù)的查詢可重用工作集,可提升查詢速度。
審核編輯:劉清
-
SQL
+關注
關注
1文章
775瀏覽量
44254 -
編程語言
+關注
關注
10文章
1950瀏覽量
34988 -
RDD
+關注
關注
0文章
7瀏覽量
7997 -
SPARK
+關注
關注
1文章
105瀏覽量
19977 -
MapReduce
+關注
關注
0文章
45瀏覽量
6312
原文標題:大數(shù)據(jù)相關介紹(22)——MapReduce和Spark
文章出處:【微信號:行業(yè)學習與研究,微信公眾號:行業(yè)學習與研究】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論