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

CAN通信協(xié)議——中文版
NVIDIA GTC2025 亮點(diǎn) NVIDIA推出 DGX Spark個(gè)人AI計(jì)算機(jī)

NVIDIA 宣布推出 DGX Spark 個(gè)人 AI 計(jì)算機(jī)

SHA105概要數(shù)據(jù)手冊(cè)

SHA106概要數(shù)據(jù)手冊(cè)

ECC206概要數(shù)據(jù)手冊(cè)

IEEE2030.5概要

spark為什么比mapreduce快?
PGA309正常只校準(zhǔn)一個(gè)溫度點(diǎn)大概要多久時(shí)間呢?
廣汽能源與泰國(guó)Spark EV簽訂合作框架協(xié)議
spark運(yùn)行的基本流程

Spark基于DPU的Native引擎算子卸載方案

評(píng)論