版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
流式大數(shù)據(jù)處理的三種框架Storm,Spark和Samza摘要:許多分布式計(jì)算系統(tǒng)都可以實(shí)時(shí)或接近實(shí)時(shí)地處理大數(shù)據(jù)流。本文將對(duì)Storm、Spark和Samza等三種Apache框架分別進(jìn)行簡(jiǎn)單介紹,然后嘗試快速、高度概述其異同。許多分布式計(jì)算系統(tǒng)都可以實(shí)時(shí)或接近實(shí)時(shí)地處理大數(shù)據(jù)流。本文將對(duì)三種Apache框架分別進(jìn)行簡(jiǎn)單介紹,然后嘗試快速、高度概述其異同。ApacheStorm在Storm中,先要設(shè)計(jì)一個(gè)用于實(shí)時(shí)計(jì)算的圖狀結(jié)構(gòu),我們稱(chēng)之為拓?fù)?opology)。這個(gè)拓?fù)鋵?huì)被提交給集群,由集群中的主控節(jié)點(diǎn)(masternode)分發(fā)代碼,將任務(wù)分配給工作節(jié)點(diǎn)(workernode)執(zhí)行。一個(gè)拓?fù)渲邪╯pout和bolt兩種角色,其中spout發(fā)送消息,負(fù)責(zé)將數(shù)據(jù)流以tuple元組的形式發(fā)送出去;而bolt則負(fù)責(zé)轉(zhuǎn)換這些數(shù)據(jù)流,在bolt中可以完成計(jì)算、過(guò)濾等操作,bolt自身也可以隨機(jī)將數(shù)據(jù)發(fā)送給其他bolt。由spout發(fā)射出的tuple是不可變數(shù)組,對(duì)應(yīng)著固定的鍵值對(duì)。MimbusItaskSup^MeerSpoutffurkarnodesAPACHESTORM-MimbusItaskSup^MeerSpoutffurkarnodesAPACHESTORM-BolrtApacheSparkSparkStreaming是核心SparkAPI的一個(gè)擴(kuò)展,它并不會(huì)像Storm那樣一次一個(gè)地處理數(shù)據(jù)流,而是在處理前按時(shí)間間隔預(yù)先將其切分為一段一段的批處理作業(yè)。Spark針對(duì)持續(xù)性數(shù)據(jù)流的抽象稱(chēng)為DStream(DiscretizedStream),一個(gè)DStream是一個(gè)微批處理(micro-batching)的RDD(彈性分布式數(shù)據(jù)集);而RDD則是一種分布式數(shù)據(jù)集,能夠以?xún)煞N方式并行運(yùn)作,分別是任意函數(shù)和滑動(dòng)窗口數(shù)據(jù)的轉(zhuǎn)換。RODwoAernodesSpa聚Streatninj?■宀「cache?K--tlCUECI7op?rations直limeDStream-WindowedDStream-.Original1RODwoAernodesSpa聚Streatninj?■宀「cache?K--tlCUECI7op?rations直limeDStream-WindowedDStream-.Original1?*?1RDO@2R.DD-@tim?DSt^ahrt---Tfsrietofrr^dRDD@time2中;EGHlMtdIksaik?X?CkjHDrClusterManageriSdeaajYARNSDD@bme3ApacheSamzaSamza處理數(shù)據(jù)流時(shí),會(huì)分別按次處理每條收到的消息。Samza的流單位既不是元組,也不是Dstream,而是一條條消息。在Samza中,數(shù)據(jù)流被切分開(kāi)來(lái),每個(gè)部分都由一組只讀消息的有序數(shù)列構(gòu)成,而這些消息每條都有一個(gè)特定的ID(offset)。該系統(tǒng)還支持批處理,即逐次處理同一個(gè)數(shù)據(jù)流分區(qū)的多條消息。Samza的執(zhí)行與數(shù)據(jù)流模塊都是可插拔式的,盡管Samza的特色是依賴(lài)Hadoop的Yarn(另一種資源調(diào)度器)和ApacheKafka。
028335aInpul:;S(r亡RE:J56YARNOuI|Xj1Slr?amgChangeto^Slreftm目且目StimsaJqIj028335aInpul:;S(r亡RE:J56YARNOuI|Xj1Slr?amgChangeto^Slreftm目且目StimsaJqIjPartitionedStreamparlil'Cn04MewKafkaparceliori2口artilian1TaskTaskssanira共同之處以上三種實(shí)時(shí)計(jì)算系統(tǒng)都是開(kāi)源的分布式系統(tǒng),具有低延遲、可擴(kuò)展和容錯(cuò)性諸多優(yōu)點(diǎn),它們的共同特色在于:允許你在運(yùn)行數(shù)據(jù)流代碼時(shí),將任務(wù)分配到一系列具有容錯(cuò)能力的計(jì)算機(jī)上并行運(yùn)行。此外,它們都提供了簡(jiǎn)單的API來(lái)簡(jiǎn)化底層實(shí)現(xiàn)的復(fù)雜程度。三種框架的術(shù)語(yǔ)名詞不同,但是其代表的概念十分相似:StormSparkStormSparkSamza$tre-amSauirceSpautsRaeei^rsConsumers$tr?annPrimitfwTuple—MessageStreamComputationBeltsTranitormatiflnsYVindowoperations對(duì)比圖面表格總結(jié)了一些不同之處:StD-rmSparkSamzaAtLeaslOnesSubSecondDeliverySemanticsExactlyOnceExceptinsamfrStateManagementStatefulsia1cstrafe&[aiefLildmbetfdeak&y-valdEstoreL血ncySubSecondDependingonbaichsizeLanguageSupportJVM-la-n^uage^cml/AtL&aslOnceExactljF-OncewithTfiden!Stateless面表格總結(jié)了一些不同之處:StD-rmSparkSamzaAtLeaslOnesSubSecondDeliverySemanticsExactlyOnceExceptinsamfrStateManagementStatefulsia1cstrafe&[aiefLildmbetfdeak&y-valdEstoreL血ncySubSecondDependingonbaichsizeLanguageSupportJVM-la-n^uage^cml/AtL&aslOnceExactljF-OncewithTfiden!StatelessRdHYDNownoruseTnderstJVWNgngu曲臥RubyPythonJav^5c:npt.PedStalja.Jawa.PythanScalaJava數(shù)據(jù)傳遞形式分為三大類(lèi):最多一次(At-most-onee):消息可能會(huì)丟失,這通常是最不理想的結(jié)果。最少一次(At-least-onee):消息可能會(huì)再次發(fā)送(沒(méi)有丟失的情況,但是會(huì)產(chǎn)生冗余)。在許多用例中已經(jīng)足夠。恰好一次(Exactly-onee):每條消息都被發(fā)送過(guò)一次且僅僅一次(沒(méi)有丟失,沒(méi)有冗余)。這是最佳情況,盡管很難保證在所有用例中都實(shí)現(xiàn)。另一個(gè)方面是狀態(tài)管理:對(duì)狀態(tài)的存儲(chǔ)有不同的策略,SparkStreaming將數(shù)據(jù)寫(xiě)入分布式文件系統(tǒng)中(例如HDFS);Samza使用嵌入式鍵值存儲(chǔ);而在Storm中,或者將狀態(tài)管理滾動(dòng)至應(yīng)用層面,或者使用更高層面的抽象Trident。用例這三種框架在處理連續(xù)性的大量實(shí)時(shí)數(shù)據(jù)時(shí)的表現(xiàn)均出色而高效,那么使用哪一種呢?選擇時(shí)并沒(méi)有什么硬性規(guī)定,最多就是幾個(gè)指導(dǎo)方針。如果你想要的是一個(gè)允許增量計(jì)算的高速事件處理系統(tǒng),Storm會(huì)是最佳選擇。它可以應(yīng)對(duì)你在客戶端等待結(jié)果的同時(shí),進(jìn)一步進(jìn)行分布式計(jì)算的需求,使用開(kāi)箱即用的分布式RPC(DRPC)就可以了。最后但同樣重要的原因:Storm使用ApacheThrift,你可以用任何編程語(yǔ)言來(lái)編寫(xiě)拓?fù)浣Y(jié)構(gòu)。如果你需要狀態(tài)持續(xù),同時(shí)/或者達(dá)到恰好一次的傳遞效果,應(yīng)當(dāng)看看更高層面的TrdentAPI,它同時(shí)也提供了微批處理的方式。使用Storm的公司有:Twitter,雅虎,Spotify還有TheWeatherChannel等。說(shuō)到微批處理,如果你必須有狀態(tài)的計(jì)算,恰好一次的遞送,并且不介意高延遲的話,那么可以考慮SparkStreaming,特別如果你還計(jì)劃圖形操作、機(jī)器學(xué)習(xí)或者訪問(wèn)SQL的話,ApacheSpark的stack允許你將一些library與數(shù)據(jù)流相結(jié)合(SparkSQL,Mllib,GraphX),它們會(huì)提供便捷的一體化編程模型。尤其是數(shù)據(jù)流算法(例如:K均值流媒體)允許Spark實(shí)時(shí)決策的促進(jìn)。使用Spark的公司有:亞馬遜,雅虎,NASAJPL,eBay還有百度等。如果你有大量的狀態(tài)需要處理,比如每個(gè)分區(qū)都有許多十億位元組,那么可以選擇Samza。由于Samza將存儲(chǔ)與處理放在同一臺(tái)機(jī)器上,在保持處理高效的同時(shí),還不會(huì)額外載入內(nèi)存。這種框架提供了靈活的可插拔API:它的默認(rèn)execution、消息發(fā)送還有存儲(chǔ)引擎操作都可以根據(jù)你的選擇隨時(shí)進(jìn)行替換。此外,如果你有大量的數(shù)據(jù)流處理階段,且分別來(lái)自不同代碼庫(kù)的不同團(tuán)隊(duì),那么Samza的細(xì)顆粒工作特性會(huì)尤其適用,因?yàn)樗鼈兛梢栽谟绊懽钚』那疤嵯峦瓿稍黾踊蛞瞥墓ぷ鳌J褂肧amza的公司有:Linkedln,Intuit,Metamarkets,Quantiply,Fortscale等。結(jié)論本文中我
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年咸寧貨運(yùn)從業(yè)資格證模擬考試系統(tǒng)
- 2025年錫林郭勒盟貨運(yùn)資格證培訓(xùn)考試題
- 2025年天津貨運(yùn)從業(yè)資格證考試題目答案
- 2025年上海貨運(yùn)從業(yè)考試試題題庫(kù)及答案
- 有關(guān)祖國(guó)在我心中演講稿范文集合十篇
- 建筑工程節(jié)能系統(tǒng)施工合同范本
- 建筑供電設(shè)備租賃合同
- 殯葬服務(wù)場(chǎng)所租賃合同協(xié)議范本
- 特種貨車(chē)租賃合同模板
- 內(nèi)蒙古節(jié)慶活動(dòng)招投標(biāo)操作規(guī)程
- 酒店建設(shè)投標(biāo)書(shū)
- 2024秋期國(guó)家開(kāi)放大學(xué)專(zhuān)科《民法學(xué)(2)》一平臺(tái)在線形考(形考任務(wù)1至4)試題及答案
- 福建省泉州市2023-2024學(xué)年高一上學(xué)期1月教學(xué)質(zhì)量檢測(cè)(期末考試)地理試題 附答案
- 【期末復(fù)習(xí)提升卷】浙教版2022-2023學(xué)年八年級(jí)上學(xué)期數(shù)學(xué)期末壓軸題綜合訓(xùn)練試卷1(解析版)
- 2024年315消費(fèi)者權(quán)益保護(hù)知識(shí)競(jìng)賽題庫(kù)及答案(完整版)
- 國(guó)網(wǎng)新安規(guī)培訓(xùn)考試題及答案
- 醫(yī)療器械計(jì)量管理制度
- 高職旅游專(zhuān)業(yè)《旅游心理學(xué)》說(shuō)課稿
- 《2024版CSCO胰腺癌診療指南》更新要點(diǎn) 2
- 二年級(jí)數(shù)學(xué)上冊(cè)100道口算題大全 (每日一套共26套)
- 六盤(pán)水事業(yè)單位筆試真題及答案2024
評(píng)論
0/150
提交評(píng)論