Spark大數(shù)據(jù)分析 課件 1.3 其他數(shù)據(jù)處理框架_第1頁
Spark大數(shù)據(jù)分析 課件 1.3 其他數(shù)據(jù)處理框架_第2頁
Spark大數(shù)據(jù)分析 課件 1.3 其他數(shù)據(jù)處理框架_第3頁
Spark大數(shù)據(jù)分析 課件 1.3 其他數(shù)據(jù)處理框架_第4頁
Spark大數(shù)據(jù)分析 課件 1.3 其他數(shù)據(jù)處理框架_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

其他數(shù)據(jù)處理框架目錄/Contents01Hadoop02Storm03Flink04BeamHadoop01HadoopHadoop是一個(gè)由Apache基金會(huì)所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu),是一個(gè)存儲(chǔ)系統(tǒng)+計(jì)算框架的軟件框架。主要解決海量數(shù)據(jù)存儲(chǔ)與計(jì)算的問題,是大數(shù)據(jù)技術(shù)中的基石。Hadoop以一種可靠、高效、可伸縮的方式進(jìn)行數(shù)據(jù)處理,用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序,用戶可以輕松地在Hadoop上開發(fā)和運(yùn)行處理海量數(shù)據(jù)的應(yīng)用程序。Hadoop的核心是HDFS和MapReduce、YARN。HadoopDHDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),能檢測和應(yīng)對硬件故障,適合部署在廉價(jià)的機(jī)器上HDFS采用master/slave架構(gòu)。一個(gè)HDFS集群是由一個(gè)Namenode和一定數(shù)目的Datanodes組成。EMapReduce是一個(gè)基于java的并行分布式計(jì)算框架,使用它來編寫的數(shù)據(jù)處理應(yīng)用可以運(yùn)行在大型的商用硬件集群上來處理大型數(shù)據(jù)集中的可并行化問題,數(shù)據(jù)處理可以發(fā)生在存儲(chǔ)在文件系統(tǒng)(非結(jié)構(gòu)化)或數(shù)據(jù)庫(結(jié)構(gòu)化)中的數(shù)據(jù)上。FApacheHadoopYARN是開源Hadoop分布式處理框架中的資源管理和作業(yè)調(diào)度技術(shù)。作為ApacheHadoop的核心組件之一,YARN負(fù)責(zé)將系統(tǒng)資源分配給在Hadoop集群中運(yùn)行的各種應(yīng)用程序,并調(diào)度要在不同集群節(jié)點(diǎn)上執(zhí)行的任務(wù)。(1)HDFS(2)

MapReduce(3)

YARNStorm02Storm簡單的編程模型:類似于MapReduce降低了并行批處理復(fù)雜性,Storm降低了實(shí)時(shí)處理的復(fù)雜性,只需實(shí)現(xiàn)幾個(gè)接口即可(Spout實(shí)現(xiàn)ISpout接口,Bolt實(shí)現(xiàn)IBolt接口)。支持多種語言:你可以在Storm之上使用各種編程語言。默認(rèn)支持Clojure、Java、Ruby和Python。要增加對其他語言的支持,只需實(shí)現(xiàn)一個(gè)簡單的Storm通信協(xié)議即可。容錯(cuò)性:nimbus、supervisor都是無狀態(tài)的,可以用kill-9來殺死Nimbus和Supervisor進(jìn)程,然后再重啟它們,任務(wù)照常進(jìn)行;當(dāng)worker失敗后,supervisor會(huì)嘗試在本機(jī)重啟它。分布式:計(jì)算是在多個(gè)線程、進(jìn)程和服務(wù)器之間并行進(jìn)行的。持久性、可靠性:消息被持久化到本地磁盤,并且支持?jǐn)?shù)據(jù)備份防止數(shù)據(jù)丟失??煽康南⑻幚恚篠torm保證每個(gè)消息至少能得到一次完整處理。任務(wù)失敗時(shí),它會(huì)負(fù)責(zé)從消息源重試消息(ack機(jī)制)??焖?、實(shí)時(shí):Storm保證每個(gè)消息能能得到快速的處理。StormStorm的核心組件Nimbus:即Storm的Master,負(fù)責(zé)資源分配和任務(wù)調(diào)度。一個(gè)Storm集群只有一個(gè)Nimbus。Supervisor:即Storm的Slave,負(fù)責(zé)接收Nimbus分配的任務(wù),管理所有Worker,一個(gè)Supervisor節(jié)點(diǎn)中包含多個(gè)Worker進(jìn)程。Worker:工作進(jìn)程,每個(gè)工作進(jìn)程中都有多個(gè)Task。Task:任務(wù),在Storm集群中每個(gè)Spout和Bolt都由若干個(gè)任務(wù)(tasks)來執(zhí)行。每個(gè)任務(wù)都與一個(gè)執(zhí)行線程相對應(yīng)。Topology:計(jì)算拓?fù)洌琒torm的拓?fù)涫菍?shí)時(shí)計(jì)算應(yīng)用邏輯的封裝,它的作用與MapReduce的任務(wù)(Job)很相似,區(qū)別在于MapReduce的一個(gè)Job在得到結(jié)果之后總會(huì)結(jié)束,而拓?fù)鋾?huì)一直在集群中運(yùn)行,直到你手動(dòng)去終止它。Stream:數(shù)據(jù)流(Streams)是Storm中最核心的抽象概念。一個(gè)數(shù)據(jù)流指的是在分布式環(huán)境中并行創(chuàng)建、處理的一組元組(tuple)的無界序列。StormStorm的核心組件Spout:數(shù)據(jù)源(Spout)是拓?fù)渲袛?shù)據(jù)流的來源。一般Spout會(huì)從一個(gè)外部的數(shù)據(jù)源讀取元組然后將他們發(fā)送到拓?fù)渲?。Bolt:拓?fù)渲兴械臄?shù)據(jù)處理均是由Bolt完成的。通過數(shù)據(jù)過濾(filtering)、函數(shù)處理(functions)、聚合(aggregations)、聯(lián)結(jié)(joins)、數(shù)據(jù)庫交互等功能,Bolt幾乎能夠完成任何一種數(shù)據(jù)處理需求。Streamgrouping:為拓?fù)渲械拿總€(gè)Bolt的確定輸入數(shù)據(jù)流是定義一個(gè)拓?fù)涞闹匾h(huán)節(jié)。數(shù)據(jù)流分組定義了在Bolt的不同任務(wù)(tasks)中劃分?jǐn)?shù)據(jù)流的方式。在Storm中有八種內(nèi)置的數(shù)據(jù)流分組方式。Reliability:可靠性。Storm可以通過拓?fù)鋪泶_保每個(gè)發(fā)送的元組都能得到正確處理。通過跟蹤由Spout發(fā)出的每個(gè)元組構(gòu)成的元組樹可以確定元組是否已經(jīng)完成處理。Flink03Flink1.處理無界和有界數(shù)據(jù)任何類型的數(shù)據(jù)都是作為事件流產(chǎn)生的。信用卡交易,傳感器測量,機(jī)器日志或網(wǎng)站或移動(dòng)應(yīng)用程序上的用戶交互,所有這些數(shù)據(jù)都作為流生成。2.隨處部署應(yīng)用程序ApacheFlink是一個(gè)分布式系統(tǒng),需要計(jì)算資源才能執(zhí)行應(yīng)用程序。Flink與所有常見的集群資源管理器(如HadoopYARN,ApacheMesos和Kubernetes)集成,但也可以設(shè)置為作為獨(dú)立群集運(yùn)行。3.運(yùn)行任意規(guī)模應(yīng)用Flink旨在任意規(guī)模上運(yùn)行有狀態(tài)流式應(yīng)用。因此,應(yīng)用程序被并行化為可能數(shù)千個(gè)任務(wù),這些任務(wù)分布在集群中并發(fā)執(zhí)行。所以應(yīng)用程序能夠充分利用無盡的CPU、內(nèi)存、磁盤和網(wǎng)絡(luò)IO。4.利用內(nèi)存性能有狀態(tài)的Flink程序針對本地狀態(tài)訪問進(jìn)行了優(yōu)化。任務(wù)的狀態(tài)始終保留在內(nèi)存中,如果狀態(tài)大小超過可用內(nèi)存,則會(huì)保存在能高效訪問的磁盤數(shù)據(jù)結(jié)構(gòu)中。5.Flink組件棧運(yùn)行時(shí)層以JobGraph形式接收程序。JobGraph即為一個(gè)一般化的并行數(shù)據(jù)流圖(dataflow),它擁有任意數(shù)量的Task來接收和產(chǎn)生datastream。Beam04Beam1.ApacheBeamSDKBeamSDK提供了一個(gè)統(tǒng)一的編程模型,該模型可以表示和轉(zhuǎn)換任何大小的數(shù)據(jù)集,無論輸入是來自批處理數(shù)據(jù)源的有限數(shù)據(jù)集,還是來自流數(shù)據(jù)源的無限數(shù)據(jù)集。BeamSDK使用相同的類來表示有界和無界數(shù)據(jù),并且使用相同的轉(zhuǎn)換對這些數(shù)據(jù)進(jìn)行操作。您可以使用選擇的BeamSDK來構(gòu)建定義數(shù)據(jù)處理管道的程序。Beam當(dāng)前支持以下特定于語言的SDK:①Java②Python③Go2.ApacheBeamPipelineRunnersBeamPipeline運(yùn)行器將您使用Beam程序定義的數(shù)據(jù)處理管道轉(zhuǎn)換為與您選擇的分布式處理后端兼容的API。運(yùn)行Beam程序時(shí),需要為要在其中執(zhí)行管道的后端指定適當(dāng)?shù)倪\(yùn)行程序。Beam當(dāng)前支持與以下分布

溫馨提示

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

最新文檔

評論

0/150

提交評論