模塊三丨抽絲剝繭剖析apache spark設(shè)計(jì)精髓10講16的實(shí)時(shí)流計(jì)算_第1頁(yè)
模塊三丨抽絲剝繭剖析apache spark設(shè)計(jì)精髓10講16的實(shí)時(shí)流計(jì)算_第2頁(yè)
模塊三丨抽絲剝繭剖析apache spark設(shè)計(jì)精髓10講16的實(shí)時(shí)流計(jì)算_第3頁(yè)
模塊三丨抽絲剝繭剖析apache spark設(shè)計(jì)精髓10講16的實(shí)時(shí)流計(jì)算_第4頁(yè)
模塊三丨抽絲剝繭剖析apache spark設(shè)計(jì)精髓10講16的實(shí)時(shí)流計(jì)算_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2013SparkSparkStreaming與改進(jìn),現(xiàn)在的SparkStreaming已經(jīng)非常成熟,在業(yè)界應(yīng)用十分廣泛。SparkStreamingSparkStreaming比如,用微積分思想求下圖中陰影部分SS據(jù)是什么樣。SparkStreaming用時(shí)間片拆分了無(wú)限的數(shù)據(jù)流,然后對(duì)每一個(gè)數(shù)據(jù)片用類SparkStreaming提供一個(gè)對(duì)于流數(shù)據(jù)的抽象DStream。DStream可以由來(lái)自ApacheKafka、Flume或者HDFS的流數(shù)據(jù)生成,也可以由別的DStream經(jīng)過(guò)各種轉(zhuǎn)換操作得沒(méi)錯(cuò),底層DStream也是由很多個(gè)序列化的RDD構(gòu)成,按時(shí)間片(比如一秒)切分成的每個(gè)數(shù)據(jù)單位都是一個(gè)RDD。然后,Spark引擎將對(duì)DStream的Transformation操作變?yōu)獒槍?duì)Spark中對(duì)RDD的Transformation操作,將RDD經(jīng)過(guò)操作變成中間結(jié)果保之前的DataFrame和DataSet也是同樣基于RDD,所以說(shuō)RDD是Spark最基本的數(shù)據(jù)抽象。就像Java里的基本數(shù)據(jù)類型(PrimitiveType)一樣,所有的數(shù)據(jù)都可以用基本數(shù)也正是因?yàn)檫@樣,無(wú)論是DataFrame,還是DStream,都具有RDD的不可變性、分區(qū)性所以,Spark是一個(gè)高度統(tǒng)一的平臺(tái),所有的高級(jí)API都有相同的性質(zhì),它們之間可以很容易地相互轉(zhuǎn)化。Spark的野心就是用這一套工具統(tǒng)一所有數(shù)據(jù)處理的場(chǎng)景。下圖就是DStream的內(nèi)部形式,即續(xù)的RDD序列,每一個(gè)RDD代表一個(gè)時(shí)間窗DStreamRDD1sc=SparkContext(master,2ssc=StreamingContext(sc,3lines=sc.socketTextStream("localhost",4words=lines.flatMap(lambdaline:line.split("首先,我們創(chuàng)建了一個(gè)lines的DStream,去來(lái)自本機(jī)9999端口的數(shù)據(jù)流,每一個(gè)數(shù)據(jù)代表一行文本。然后,對(duì)lines進(jìn)行flatMap的轉(zhuǎn)換操作,把每一個(gè)文本行拆分成詞本質(zhì)上,對(duì)一個(gè)DStream進(jìn)行flatMap操作,就是對(duì)它里邊的每一個(gè)RDD進(jìn)行正因?yàn)镈Stream和RDD的關(guān)系,RDD支持的所有轉(zhuǎn)換操作,DStream都支持,比如map、flatMap、filter、union等。這些操作我們邊學(xué)習(xí)RDD時(shí)都詳細(xì)介紹過(guò),在此Streaming操作的StreamingContextDStream。前邊提到的例子中,lines個(gè)DStream就是由名為sc的StreamingContext創(chuàng)建的。StreamingContext時(shí)間間隔,即把流數(shù)據(jù)細(xì)分成數(shù)據(jù)塊的粒這個(gè)時(shí)間間隔決定了流處理的延遲性,所以,需要我們根據(jù)需求和資源來(lái)權(quán)衡間隔的長(zhǎng)度。上邊的例子中,我們把輸入的數(shù)據(jù)流以秒為單位劃分,每一秒的數(shù)據(jù)會(huì)生成一個(gè)RDD語(yǔ)進(jìn)行統(tǒng)計(jì),每隔10秒鐘輸出過(guò)去60秒內(nèi)前十位的熱點(diǎn)詞。這是流處理的一個(gè)基本應(yīng)用場(chǎng)景,很多流處理框架如ApacheFlink都有原生的支持。所以,Spark也同樣支持滑窗口長(zhǎng)度(windowlength)60滑動(dòng)間隔(slidinginterval):每次統(tǒng)計(jì)的時(shí)間間隔,在例子中是10秒。SparkStreamingStreamingContextwindowDStreamDStream個(gè)RDD代表一段時(shí)間窗口內(nèi)的數(shù)據(jù),如下例所示。1windowed_words=words.window(60,windowed_wordsDStream,即它里邊每一個(gè)數(shù)據(jù)塊都包含過(guò)去60秒內(nèi)的詞語(yǔ),而且這樣的塊每10秒鐘就會(huì)生成一個(gè)。此外,SparkStreaming還支持一些“進(jìn)階”窗口操作。如countByWindow、reduceByWindow、reduceByKeyAndWindowcountByValueAndWindow,在此不SparkStreaming講了這么多SparkStreaming,不管內(nèi)部實(shí)現(xiàn)也好,支持的API也好,我們還并不明白它際工作中決定是否使用SparkStreaming。首先,SparkStreamingRDDRDD比如,數(shù)據(jù)容錯(cuò)性,如果RDD再比如運(yùn)行速度,DStreampersist()而且,SparkStreaming是Spark生態(tài)的一部分。所以,它可以和Spark的引擎、SparkSQL、MLlib程序中無(wú)縫進(jìn)行批處理、交互式查詢等操作。這個(gè)特點(diǎn)大大增強(qiáng)了SparkStreaming的優(yōu)勢(shì)和功能,使得基于SparkStreaming的應(yīng)用程序很容易擴(kuò)展。SparkStreamingSparkStreaming不支持太小的批處理的時(shí)間間隔。SparkStreaming的流處理框架,如Storm的延遲性就好很多,可以做到毫秒級(jí)。SparkStreaming,SparkRDDSparkStreamingRDDSparkStreaming 售賣。頁(yè)面已增加防盜追蹤,將依 上一 15|SparkSQL:Spark數(shù)據(jù)查詢的利下一 17|StructuredStreaming:如何用DataFrameAPI進(jìn)行實(shí)時(shí)數(shù)據(jù)分析 9老師,Spark團(tuán)隊(duì)對(duì)Sparkstreaming更新越來(lái)越少,Sparkstreaming存在使用Processingtime而非Eventtime,批流代碼不統(tǒng)一等問(wèn)題,而Structuredstreaming對(duì)這些都有一定改進(jìn)。所以StructurestreamingSparkstreaming或者Flink,成

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論