[flow]Kafka+Spark Streaming+Redis實(shí)時(shí)計(jì)算整合


Spark 實(shí)戰(zhàn), 第 2 部分:使用 Kafka 和 Spark Streaming 構(gòu)建實(shí)時(shí)數(shù)據(jù)處理系統(tǒng)
https://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice2/
關(guān)于 Spark Steaming
Spark Streaming 模塊是對(duì)于 Spark Core 的一個(gè)擴(kuò)展,目的是為了以高吞吐量,并且容錯(cuò)的方式處理持續(xù)性的數(shù)據(jù)流。目前 Spark Streaming 支持的外部數(shù)據(jù)源有 Flume、 Kafka、Twitter、ZeroMQ、TCP Socket 等。
Discretized Stream 也叫 DStream) 是 Spark Streaming 對(duì)于持續(xù)數(shù)據(jù)流的一種基本抽象,在內(nèi)部實(shí)現(xiàn)上,DStream 會(huì)被表示成一系列連續(xù)的 RDD(彈性分布式數(shù)據(jù)集),每一個(gè) RDD 都代表一定時(shí)間間隔內(nèi)到達(dá)的數(shù)據(jù)。所以在對(duì) DStream 進(jìn)行操作時(shí),會(huì)被 Spark Stream 引擎轉(zhuǎn)化成對(duì)底層 RDD 的操作。對(duì) Dstream 的操作類型有:

Transformations: 類似于對(duì) RDD 的操作,Spark Streaming 提供了一系列的轉(zhuǎn)換操作去支持對(duì) DStream 的修改。如 map,union,filter,transform 等

Window Operations: 窗口操作支持通過(guò)設(shè)置窗口長(zhǎng)度和滑動(dòng)間隔的方式操作數(shù)據(jù)。常用的操作有 reduceByWindow,reduceByKeyAndWindow,window 等

Output Operations: 輸出操作允許將 DStream 數(shù)據(jù)推送到其他外部系統(tǒng)或存儲(chǔ)平臺(tái), 如 HDFS, Database 等,類似于 RDD 的 Action 操作,Output 操作也會(huì)實(shí)際上觸發(fā)對(duì) DStream 的轉(zhuǎn)換操作。常用的操作有 print,saveAsTextFiles,saveAsHadoopFiles, foreachRDD 等。


簡(jiǎn)單之美 | Kafka+Spark Streaming+Redis實(shí)時(shí)計(jì)算整合實(shí)踐
http://shiyanjun.cn/archives/1097.html

基于Spark通用計(jì)算平臺(tái),可以很好地?cái)U(kuò)展各種計(jì)算類型的應(yīng)用,尤其是Spark提供了內(nèi)建的計(jì)算庫(kù)支持,像Spark Streaming、Spark SQL、MLlib、GraphX,這些內(nèi)建庫(kù)都提供了高級(jí)抽象,可以用非常簡(jiǎn)潔的代碼實(shí)現(xiàn)復(fù)雜的計(jì)算邏輯、這也得益于Scala編程語(yǔ)言的簡(jiǎn)潔性。這里,我們基于1.3.0版本的Spark搭建了計(jì)算平臺(tái),實(shí)現(xiàn)基于Spark Streaming的實(shí)時(shí)計(jì)算。
我們的應(yīng)用場(chǎng)景是分析用戶使用手機(jī)App的行為,描述如下所示:

手機(jī)客戶端會(huì)收集用戶的行為事件(我們以點(diǎn)擊事件為例),將數(shù)據(jù)發(fā)送到數(shù)據(jù)服務(wù)器,我們假設(shè)這里直接進(jìn)入到Kafka消息隊(duì)列
后端的實(shí)時(shí)服務(wù)會(huì)從Kafka消費(fèi)數(shù)據(jù),將數(shù)據(jù)讀出來(lái)并進(jìn)行實(shí)時(shí)分析,這里選擇Spark Streaming,因?yàn)镾park Streaming提供了與Kafka整合的內(nèi)置支持
經(jīng)過(guò)Spark Streaming實(shí)時(shí)計(jì)算程序分析,將結(jié)果寫(xiě)入Redis,可以實(shí)時(shí)獲取用戶的行為數(shù)據(jù),并可以導(dǎo)出進(jìn)行離線綜合統(tǒng)計(jì)分析


開(kāi)源大數(shù)據(jù)技術(shù)漫談
http://sanwen8.cn/p/150ZTVb.html
實(shí)時(shí)數(shù)據(jù)輸入解決方案讓輸入數(shù)據(jù)以流的方式實(shí)時(shí)地進(jìn)入大數(shù)據(jù)系統(tǒng),而不必先存儲(chǔ)到HDFS文件系統(tǒng)中,從而避免了由于磁盤IO造成的性能損失。Apache Kafka, RabbitMQ,Apache Flume等是當(dāng)前比較流行的開(kāi)源方案,其中Apache Kafka越來(lái)越引人注目,這主要?dú)w功于其恐怖的性能指標(biāo)。 Kafka目前用于LinkedIn,它每天處理超過(guò)100億消息,持續(xù)負(fù)載平均每秒172,000消息。目前,無(wú)論從內(nèi)部和外部的使用數(shù)據(jù)的應(yīng)用程序大量使用多訂閱者支持。每個(gè)消息發(fā)布出來(lái)后,基本上會(huì)有5.5個(gè)消息消費(fèi)者使用,這導(dǎo)致的結(jié)果是每一天將有550億的消息發(fā)送給實(shí)時(shí)消費(fèi)者。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容