4spark入門優(yōu)秀課件_第1頁
4spark入門優(yōu)秀課件_第2頁
4spark入門優(yōu)秀課件_第3頁
4spark入門優(yōu)秀課件_第4頁
4spark入門優(yōu)秀課件_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Spark入門介紹信春雷什么是SparkSpark是UC

Berkeley

AMP

lab所開源的類Hadoop

MapReduce的通用的并行計(jì)算框架,Spark基于map

reduce算法實(shí)現(xiàn)的分布式計(jì)算,擁有Hadoop

MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是Job中間輸出和結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的map

reduce的算法。Spark和Hadoop區(qū)別數(shù)據(jù)存儲內(nèi)存

Spark更適合于迭代運(yùn)算比較多的ML和DM運(yùn)算。因?yàn)樵赟park里面,有RDD的抽象概念。Spark比Hadoop更通用

①Spark提供的數(shù)據(jù)集操作類型有很多種,不像Hadoop只提供了Map和Reduce兩種操作;

②各個處理節(jié)點(diǎn)之間的通信模型不再像Hadoop那樣就是唯一的DataShuffle一種模式。用戶可

以命名,物化,控制中間結(jié)果的存儲、分區(qū)等??梢哉f編程模型比Hadoop更靈活;

③不過由于RDD的特性,Spark不適用那種異步細(xì)粒度更新狀態(tài)的應(yīng)用;不適合增量修改;容錯性在分布式數(shù)據(jù)集計(jì)算時通過checkpoint來實(shí)現(xiàn)容錯,而checkpoint有兩種方式,一個是checkpointdata,一個是loggingtheupdates。用戶可以控制采用哪種方式來實(shí)現(xiàn)容錯。可用性

Spark通過提供豐富的Scala,Java,PythonAPI及交互式Shell來提高可用性。

Spark可以直接對HDFS進(jìn)行數(shù)據(jù)的讀寫,同樣支持SparkonYARN。Spark可以與MapReduce運(yùn)行于同集群中,共享存儲資源與計(jì)算,數(shù)據(jù)倉庫Shark實(shí)現(xiàn)上借用Hive,幾乎與Hive完全兼容。Spark適用場景Spark是基于內(nèi)存的迭代計(jì)算框架,適用于需要多次操作特定數(shù)據(jù)集的應(yīng)用場合。需要反復(fù)操作的次數(shù)越多,所需讀取的數(shù)據(jù)量越大,受益越大,數(shù)據(jù)量小但是計(jì)算密集度較大的場合,受益就相對較小由于RDD的特性,Spark不適用那種異步細(xì)粒度更新狀態(tài)的應(yīng)用,例如web服務(wù)的存儲或者是增量的web爬蟲和索引。就是對于那種增量修改的應(yīng)用模型不適合??偟膩碚fSpark的適用面比較廣泛且比較通用。Spark生態(tài)圈(1)Spark生態(tài)圈(2)SparkCore

–用于通用分布式數(shù)據(jù)處理的引擎。它不不依賴于任何其他組件,可以運(yùn)行在任何商用服務(wù)器集群上;SparkSql

–運(yùn)行在Spark上的SQL查詢語句,支持一系列SQL函數(shù)和HiveQL。但是還不是很成熟,所以不要在生產(chǎn)系統(tǒng)中使用;而HiveQL集成了需要的hive元數(shù)據(jù)和Hive相關(guān)的jar包;SparkStreaming

–基于spark的微批處理引擎,支持各種各樣數(shù)據(jù)源的導(dǎo)入。唯一依賴的是SparkCore引擎;MLib

–構(gòu)建在spark之上的機(jī)器學(xué)習(xí)庫,支持一系列數(shù)據(jù)挖掘算法;GraphX-是一個分布式圖處理框架;Spark為什么比Hadoop快消除了冗余的HDFS讀寫

Hadoop每次shuffle操作后,必須寫到磁盤,而Spark在shuffle后不一定落盤,可以cache到內(nèi)存中,以便迭代時使用。如果操作復(fù)雜,很多的shufle操作,那么Hadoop的讀寫IO時間會大大增加;消除了冗余的MapReduce階段

Hadoop的shuffle操作一定連著完整的MapReduce操作,冗余繁瑣。而Spark基于RDD提供了豐富的算子操作,且reduce操作產(chǎn)生shuffle數(shù)據(jù),可以緩存在內(nèi)存中;Spark惰性計(jì)算的,只有執(zhí)行action算子才進(jìn)行計(jì)算;JVM的優(yōu)化

Hadoop每次MapReduce操作,啟動一個Task便會啟動一次JVM,基于進(jìn)程的操作。而Spark每次MapReduce操作是基于線程的,只在啟動Executor是啟動一次JVM,內(nèi)存的Task操作是在線程復(fù)用的;Spark、Hadoop執(zhí)行說明Spark會代替Hadoop嗎日常工作常用到的需求場景

批處理、實(shí)時計(jì)算、機(jī)器學(xué)習(xí)Hadoop適合于離線的批量數(shù)據(jù)處理適用于對實(shí)時性要求極低的場景Storm適合于實(shí)時流數(shù)據(jù)處理,實(shí)時性方面做得極好Spark是內(nèi)存分布式計(jì)算框架,試圖吞并Hadoop的Map-Reduce批處理框架和Storm的流處理框架,但是Spark已經(jīng)做得很不錯了,批處理方面性能優(yōu)于Map-Reduce,但是流處理目前還是弱于Storm,產(chǎn)品仍在改進(jìn)之中參考:Spark運(yùn)行方式單機(jī)(開發(fā)、測試)

部署在單機(jī)上時,既可以用本地模式運(yùn)行,也可以用偽分布模式運(yùn)行;SparkOnLocal(本地運(yùn)行)

SparkOnLocalCluster(本地偽分布)集群(測試、生產(chǎn))

YarnClient(測試):Driver在客戶端本地運(yùn)行,這種模式可以使得SparkApplication和客戶端進(jìn)行交互

YarnCluster模式(生產(chǎn)):Driver在集群運(yùn)行,客戶端提交完作業(yè)就可以撤離Spark運(yùn)行方式--YarnClientYarnClient模式

①Client向YARN的ResourceManager申請啟動ApplicationMaster;

②ResourceManager收到請求后,在集群中選擇一個NodeManager,為該應(yīng)用程序分配第一個Container,要求它在這個Container中啟動應(yīng)用程序的ApplicationMaster,與YARN-Cluster區(qū)別的是在該ApplicationMaster不運(yùn)行SparkContext

③Client中的SparkContext初始化完畢后,與ApplicationMaster建立通訊,向ResourceManager注冊,根據(jù)任務(wù)信息向ResourceManager申請資源(Container)

④一旦ApplicationMaster申請到資源(也就是Container)后,便與對應(yīng)的NodeManager通信,要求它在獲得的Container,準(zhǔn)備運(yùn)行task

⑤Client中的SparkContext分配Task給申請到的資源,運(yùn)行Task并向Driver匯報運(yùn)行的狀態(tài)和進(jìn)度Spark運(yùn)行方式--YarnClusterYarnClient模式

①Client向YARN中提交應(yīng)用程序,包括ApplicationMaster程序、啟動ApplicationMaster的命令、需要在Executor中運(yùn)行的程序等;

②ResourceManager收到請求后,在集群中選擇一個NodeManager,為該應(yīng)用程序分配第一個Container,要求它在這個Container中啟動應(yīng)用程序的ApplicationMaster,其中ApplicationMaster進(jìn)行SparkContext等的初始化;

③ApplicationMaster向ResourceManager注冊④一旦ApplicationMaster申請到資源(也就是Container)后,便與對應(yīng)的NodeManager通信,要求它在獲得的Container

⑤ApplicationMaster中的SparkContext分配Task給Spark核心概念(RDD)彈性分布數(shù)據(jù)集

Rdd是spark的靈魂,中文翻譯彈性分布式數(shù)據(jù)集,一個rdd它表示已被分區(qū),不可變的并能夠被并行操作的數(shù)據(jù)集合,不同的數(shù)據(jù)集格式對應(yīng)不同的RDD實(shí)現(xiàn)。rdd內(nèi)部可以有許多分區(qū)(partitions),每個分區(qū)又擁有大量的記錄(records);RDD是Spark的最基本抽象,是對分布式內(nèi)存的抽象使用,實(shí)現(xiàn)了以操作本地集合的方式來操作分布式數(shù)據(jù)集的抽象實(shí)現(xiàn);RDD特點(diǎn)它是在集群節(jié)點(diǎn)上的不可變的、已分區(qū)的集合對象;通過并行轉(zhuǎn)換的方式來創(chuàng)建如(map,filter,join,etc);失敗自動重建;可以控制存儲級別(內(nèi)存、磁盤等)來進(jìn)行重用;必須是可序列化的;是靜態(tài)類型的;Spark

編程(1)(RDD)彈性分布數(shù)據(jù)集

Rdd是spark的靈魂,中文翻譯彈性分布式數(shù)據(jù)集,一個rdd它表示已被分區(qū),不可變的并能夠被并行操作的數(shù)據(jù)集合,不同的數(shù)據(jù)集格式對應(yīng)不同的RDD實(shí)現(xiàn)。rdd內(nèi)部可以有許多分區(qū)(partitions),每個分區(qū)又擁有大量的記錄(records);RDD是Spark的最基本抽象,是對分布式內(nèi)存的抽象使用,實(shí)現(xiàn)了以操作本地集合的方式來操作分布式數(shù)據(jù)集的抽象實(shí)現(xiàn);RDD特點(diǎn)它是在集群節(jié)點(diǎn)上的不可變的、已分區(qū)的集合對象;通過并行轉(zhuǎn)換的方式來創(chuàng)建如(map,filter,join,etc);失敗自動重建;可以控制存儲級別(內(nèi)存、磁盤等)來進(jìn)行重用;必須是可序列化的;是靜態(tài)類型的;Spark

編程(2)對于RDD可以有兩種計(jì)算方式:轉(zhuǎn)換(返回值還是一個RDD)與操作(返回值不是一個RDD)。轉(zhuǎn)換(Transformations)(如:map,filter,groupBy,join等),Transformations操作是Lazy的,也就是說從一個RDD轉(zhuǎn)換生成另一個RDD的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論