溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

發(fā)布時(shí)間:2020-07-02 14:39:02 來(lái)源:網(wǎng)絡(luò) 閱讀:495 作者:Spark_2016 欄目:大數(shù)據(jù)

本期內(nèi)容:

1、Spark Streaming 動(dòng)手實(shí)戰(zhàn)演示

2、閃電般理解Spark Streaming原理

案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

流(Streaming),在大數(shù)據(jù)時(shí)代為數(shù)據(jù)流處理,就像水流一樣,是數(shù)據(jù)流;既然是數(shù)據(jù)流處理,就會(huì)想到數(shù)據(jù)的流入、數(shù)據(jù)的加工、數(shù)據(jù)的流出。

日常工作、生活中數(shù)據(jù)來(lái)源很多不同的地方。例如:工業(yè)時(shí)代的汽車(chē)制造、監(jiān)控設(shè)備、工業(yè)設(shè)備會(huì)產(chǎn)生很多源數(shù)據(jù);信息時(shí)代的電商網(wǎng)站、日志服務(wù)器、社交網(wǎng)絡(luò)、金融交易系統(tǒng)、******、垃圾郵件、交通監(jiān)控等;通信時(shí)代的手機(jī)、平板、智能設(shè)備、物聯(lián)網(wǎng)等會(huì)產(chǎn)生很多實(shí)時(shí)數(shù)據(jù),數(shù)據(jù)流無(wú)處不在。

在大數(shù)據(jù)時(shí)代Spark Streaming能做什么?

平時(shí)用戶(hù)都有網(wǎng)上購(gòu)物的經(jīng)歷,用戶(hù)在網(wǎng)站上進(jìn)行的各種操作通過(guò)Spark Streaming流處理技術(shù)可以被監(jiān)控,用戶(hù)的購(gòu)買(mǎi)愛(ài)好、關(guān)注度、交易等可以進(jìn)行行為分析。在金融領(lǐng)域,通過(guò)Spark Streaming流處理技術(shù)可以對(duì)交易量很大的賬號(hào)進(jìn)行監(jiān)控,防止罪犯洗錢(qián)、財(cái)產(chǎn)轉(zhuǎn)移、防欺詐等。在網(wǎng)絡(luò)安全性方面,******時(shí)有發(fā)生,通過(guò)Spark Streaming流處理技術(shù)可以將某類(lèi)可疑IP進(jìn)行監(jiān)控并結(jié)合機(jī)器學(xué)習(xí)訓(xùn)練模型匹配出當(dāng)前請(qǐng)求是否屬于******。其他方面,如:垃圾郵件監(jiān)控過(guò)濾、交通監(jiān)控、網(wǎng)絡(luò)監(jiān)控、工業(yè)設(shè)備監(jiān)控的背后都是Spark Streaming發(fā)揮強(qiáng)大流處理的地方。

大數(shù)據(jù)時(shí)代,數(shù)據(jù)價(jià)值一般怎么定義?

所有沒(méi)經(jīng)過(guò)流處理的數(shù)據(jù)都是無(wú)效數(shù)據(jù)或沒(méi)有價(jià)值的數(shù)據(jù);數(shù)據(jù)產(chǎn)生之后立即處理產(chǎn)生的價(jià)值是最大的,數(shù)據(jù)放置越久或越滯后其使用價(jià)值越低。以前絕大多數(shù)電商網(wǎng)站盈利走的是網(wǎng)絡(luò)流量(即用戶(hù)的訪(fǎng)問(wèn)量),如今,電商網(wǎng)站不僅僅需要關(guān)注流量、交易量,更重要的是要通過(guò)數(shù)據(jù)流技術(shù)讓電商網(wǎng)站的各種數(shù)據(jù)流動(dòng)起來(lái),通過(guò)實(shí)時(shí)流動(dòng)的數(shù)據(jù)及時(shí)分析、挖掘出各種有價(jià)值的數(shù)據(jù);比如:對(duì)不同交易量的用戶(hù)指定用戶(hù)畫(huà)像,從而提供不同服務(wù)質(zhì)量;準(zhǔn)對(duì)用戶(hù)訪(fǎng)問(wèn)電商網(wǎng)站板塊愛(ài)好及時(shí)推薦相關(guān)的信息。

SparkStreaming VS Hadoop MR:

Spark Streaming是一個(gè)準(zhǔn)實(shí)時(shí)流處理框架,而Hadoop MR是一個(gè)離線(xiàn)、批處理框架;很顯然,在數(shù)據(jù)的價(jià)值性角度,Spark Streaming完勝于Hadoop MR。

SparkStreaming VS Storm:

Spark Streaming是一個(gè)準(zhǔn)實(shí)時(shí)流處理框架,處理響應(yīng)時(shí)間一般以分鐘為單位,也就是說(shuō)處理實(shí)時(shí)數(shù)據(jù)的延遲時(shí)間是秒級(jí)別的;Storm是一個(gè)實(shí)時(shí)流處理框架,處理響應(yīng)是毫秒級(jí)的。所以在流框架選型方面要看具體業(yè)務(wù)場(chǎng)景。需要澄清的是現(xiàn)在很多人認(rèn)為Spark Streaming流處理運(yùn)行不穩(wěn)定、數(shù)據(jù)丟失、事務(wù)性支持不好等等,那是因?yàn)楹芏嗳瞬粫?huì)駕馭Spark Streaming及Spark本身。在Spark Streaming流處理的延遲時(shí)間方面,DT_Spark大數(shù)據(jù)夢(mèng)工廠(chǎng)即將推出的Spark定制版本,會(huì)將Spark Streaming的延遲從秒級(jí)別推進(jìn)到100毫秒之內(nèi)甚至更少。

SparkStreaming優(yōu)點(diǎn):

1、提供了豐富的API,企業(yè)中能快速實(shí)現(xiàn)各種復(fù)雜的業(yè)務(wù)邏輯。

2、流入Spark Streaming的數(shù)據(jù)流通過(guò)和機(jī)器學(xué)習(xí)算法結(jié)合,完成機(jī)器模擬和圖計(jì)算。

3、Spark Streaming基于Spark優(yōu)秀的血統(tǒng)。

SparkStreaming能不能像Storm一樣,一條一條處理數(shù)據(jù)?

Storm處理數(shù)據(jù)的方式是以條為單位來(lái)一條一條處理的,而Spark Streaming基于單位時(shí)間處理數(shù)據(jù)的,SparkStreaming能不能像Storm一樣呢?答案是:可以的。

業(yè)界一般的做法是Spark Streaming和Kafka搭檔即可達(dá)到這種效果,入下圖:

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理


Kafka業(yè)界認(rèn)同最主流的分布式消息框架,此框架即符合消息廣播模式又符合消息隊(duì)列模式。

Kafka內(nèi)部使用的技術(shù):

1、  Cache

2、  Interface

3、  Persistence(默認(rèn)最大持久化一周)

4、  Zero-Copy技術(shù)讓Kafka每秒吞吐量幾百兆,而且數(shù)據(jù)只需要加載一次到內(nèi)核提供其他應(yīng)用程序使用

外部各種源數(shù)據(jù)推進(jìn)(Push)Kafka,然后再通過(guò)Spark Streaming抓?。≒ull)數(shù)據(jù),抓取的數(shù)據(jù)量可以根據(jù)自己的實(shí)際情況確定每一秒中要處理多少數(shù)據(jù)。

通過(guò)Spark Streaming動(dòng)手實(shí)戰(zhàn)wordCount實(shí)例

這里是運(yùn)行一個(gè)Spark Streaming的程序:統(tǒng)計(jì)這個(gè)時(shí)間段內(nèi)流進(jìn)來(lái)的單詞出現(xiàn)的次數(shù). 它計(jì)算的是:他規(guī)定的時(shí)間段內(nèi)每個(gè)單詞出現(xiàn)了多少次。

1、先啟動(dòng)下Spark集群:

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

我們從集群里面打開(kāi)下官方網(wǎng)站

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

接受這個(gè)數(shù)據(jù)進(jìn)行加工,就是流處理的過(guò)程,剛才那個(gè)WordCount就是以1s做一個(gè)單位。

剛才運(yùn)行的時(shí)候,為什么沒(méi)有結(jié)果呢?因?yàn)樾枰獢?shù)據(jù)源。

2、獲取數(shù)據(jù)源:

 

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

新開(kāi)一個(gè)命令終端,然后輸入:

nc -lk 9999

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

現(xiàn)在我們拷貝數(shù)據(jù)源進(jìn)入運(yùn)行:

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

 

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

 

然后按回車(chē)運(yùn)行


第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

 

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

DStream和RDD關(guān)系:

沒(méi)有輸入數(shù)據(jù)會(huì)打印的是空結(jié)果:

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

 第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

 但是實(shí)際上,Job的執(zhí)行是Spark Streaming框架幫我們產(chǎn)生的和開(kāi)發(fā)者自己寫(xiě)的Spark代碼業(yè)務(wù)邏輯沒(méi)有關(guān)系,而且Spark Streaming框架的執(zhí)行時(shí)間間隔可以手動(dòng)配置,如:每隔一秒鐘就會(huì)產(chǎn)生一次Job的調(diào)用。所以在開(kāi)發(fā)者編寫(xiě)好的Spark代碼時(shí)(如:flatmap、map、collect),不會(huì)導(dǎo)致job的運(yùn)行,job運(yùn)行是Spark Streaming框架產(chǎn)生的,可以配置成每隔一秒中都會(huì)產(chǎn)生一次job調(diào)用。
Spark Streaming流進(jìn)來(lái)的數(shù)據(jù)是DStream,但Spark Core框架只認(rèn)RDD,這就產(chǎn)生矛盾了?
Spark Streaming框架中,作業(yè)實(shí)例的產(chǎn)生都是基于rdd實(shí)例來(lái)產(chǎn)生,你寫(xiě)的代碼是作業(yè)的模板,即rdd是作業(yè)的模板,模板一運(yùn)行rdd就會(huì)被執(zhí)行,此時(shí)action必須處理數(shù)據(jù)。RDD的模板就是DStream離散流,RDD之間存在依賴(lài)關(guān)系,DStream就有了依賴(lài)關(guān)系,也就構(gòu)成了DStream 有向無(wú)環(huán)圖。這個(gè)DAG圖,是模板。Spark Streaming只不過(guò)是在附在RDD上面一層薄薄的封裝而已。你寫(xiě)的代碼不能產(chǎn)生Job,只有框架才能產(chǎn)生Job.
如果一秒內(nèi)計(jì)算不完數(shù)據(jù),就只能調(diào)優(yōu)了.

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

編寫(xiě)人:姜偉及其IMF-Spark Steaming企業(yè)級(jí)開(kāi)發(fā)實(shí)戰(zhàn)小組

主編輯:王家林


成員博客地址:

第一名:姜偉及其IMF-Spark Steaming企業(yè)級(jí)開(kāi)發(fā)實(shí)戰(zhàn)小組    http://www.cnblogs.com/sparkbigdata/p/5403963.html

備注:

資料來(lái)源于:DT_大數(shù)據(jù)夢(mèng)工廠(chǎng)(IMF傳奇行動(dòng)絕密課程)

更多私密內(nèi)容,請(qǐng)關(guān)注微信公眾號(hào):DT_Spark

如果您對(duì)大數(shù)據(jù)Spark感興趣,可以免費(fèi)聽(tīng)由王家林老師每天晚上20:00開(kāi)設(shè)的Spark永久免費(fèi)公開(kāi)課,地址YY房間號(hào):68917580

第82課:Spark Streaming第一課:案例動(dòng)手實(shí)戰(zhàn)并在電光石火間理解其工作原理

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI