Spark 實戰(zhàn), 第 2 部分:使用 Kafka 和 Spark Streaming 構(gòu)建實時數(shù)據(jù)處理系統(tǒng)
https://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice2/
關(guān)于 Spark Steaming
Spark Streaming 模塊是對于 Spark Core 的一個擴展霜大,目的是為了以高吞吐量,并且容錯的方式處理持續(xù)性的數(shù)據(jù)流腾务。目前 Spark Streaming 支持的外部數(shù)據(jù)源有 Flume、 Kafka陷遮、Twitter疗韵、ZeroMQ瓣赂、TCP Socket 等。
Discretized Stream 也叫 DStream) 是 Spark Streaming 對于持續(xù)數(shù)據(jù)流的一種基本抽象鲤竹,在內(nèi)部實現(xiàn)上浪读,DStream 會被表示成一系列連續(xù)的 RDD(彈性分布式數(shù)據(jù)集),每一個 RDD 都代表一定時間間隔內(nèi)到達的數(shù)據(jù)辛藻。所以在對 DStream 進行操作時瑟啃,會被 Spark Stream 引擎轉(zhuǎn)化成對底層 RDD 的操作。對 Dstream 的操作類型有:
Transformations: 類似于對 RDD 的操作揩尸,Spark Streaming 提供了一系列的轉(zhuǎn)換操作去支持對 DStream 的修改蛹屿。如 map,union,filter,transform 等
Window Operations: 窗口操作支持通過設(shè)置窗口長度和滑動間隔的方式操作數(shù)據(jù)。常用的操作有 reduceByWindow,reduceByKeyAndWindow,window 等
Output Operations: 輸出操作允許將 DStream 數(shù)據(jù)推送到其他外部系統(tǒng)或存儲平臺, 如 HDFS, Database 等岩榆,類似于 RDD 的 Action 操作错负,Output 操作也會實際上觸發(fā)對 DStream 的轉(zhuǎn)換操作坟瓢。常用的操作有 print,saveAsTextFiles,saveAsHadoopFiles, foreachRDD 等。
簡單之美 | Kafka+Spark Streaming+Redis實時計算整合實踐
http://shiyanjun.cn/archives/1097.html
基于Spark通用計算平臺犹撒,可以很好地擴展各種計算類型的應(yīng)用折联,尤其是Spark提供了內(nèi)建的計算庫支持,像Spark Streaming识颊、Spark SQL诚镰、MLlib、GraphX祥款,這些內(nèi)建庫都提供了高級抽象清笨,可以用非常簡潔的代碼實現(xiàn)復(fù)雜的計算邏輯、這也得益于Scala編程語言的簡潔性刃跛。這里抠艾,我們基于1.3.0版本的Spark搭建了計算平臺,實現(xiàn)基于Spark Streaming的實時計算桨昙。
我們的應(yīng)用場景是分析用戶使用手機App的行為检号,描述如下所示:
手機客戶端會收集用戶的行為事件(我們以點擊事件為例),將數(shù)據(jù)發(fā)送到數(shù)據(jù)服務(wù)器蛙酪,我們假設(shè)這里直接進入到Kafka消息隊列
后端的實時服務(wù)會從Kafka消費數(shù)據(jù)齐苛,將數(shù)據(jù)讀出來并進行實時分析,這里選擇Spark Streaming桂塞,因為Spark Streaming提供了與Kafka整合的內(nèi)置支持
經(jīng)過Spark Streaming實時計算程序分析凹蜂,將結(jié)果寫入Redis,可以實時獲取用戶的行為數(shù)據(jù)藐俺,并可以導(dǎo)出進行離線綜合統(tǒng)計分析
開源大數(shù)據(jù)技術(shù)漫談
http://sanwen8.cn/p/150ZTVb.html
實時數(shù)據(jù)輸入解決方案讓輸入數(shù)據(jù)以流的方式實時地進入大數(shù)據(jù)系統(tǒng)炊甲,而不必先存儲到HDFS文件系統(tǒng)中泥彤,從而避免了由于磁盤IO造成的性能損失欲芹。Apache Kafka, RabbitMQ吟吝,Apache Flume等是當(dāng)前比較流行的開源方案菱父,其中Apache Kafka越來越引人注目,這主要歸功于其恐怖的性能指標剑逃。 Kafka目前用于LinkedIn浙宜,它每天處理超過100億消息,持續(xù)負載平均每秒172,000消息蛹磺。目前粟瞬,無論從內(nèi)部和外部的使用數(shù)據(jù)的應(yīng)用程序大量使用多訂閱者支持。每個消息發(fā)布出來后萤捆,基本上會有5.5個消息消費者使用裙品,這導(dǎo)致的結(jié)果是每一天將有550億的消息發(fā)送給實時消費者俗批。