轉帖|行業資訊|編輯:龔雪|2016-01-05 09:49:27.000|閱讀 442 次
概述:Databricks最近對1400多家Spark用戶進行了一次調查,結果顯示這些用戶對Spark Streaming的使用率與2014年相比增長了56%,另外,有48%的受訪者將Spark Streaming標記為最常用的Spark組件。Uber、Netflix和Pinterest等家喻戶曉的公司赫然在列,那么為什么使用Spark Streaming加速業務發展的公司越來越多呢?我們一起來看看。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
現在,幾乎所有的公司都是一家軟件公司,它們實時地監控傳感器、物聯網設備、社交網絡和在線事務系統產生的數據,然后通過大規模、實時的流處理系統對其進行分析從而實現快速響應。此外,公司還會使用這些數據生成日報和業務模型。也就是說,現代流處理框架不僅需要應對實時場景,還需要處理預處理和后處理等非實時場景。
例如,電商需要對用戶在線購買時產生的數據(包括日期、時間、物品、價格等)進行實時分析完成廣告推送和相關性推薦。銀行需要使用訓練好的欺詐模型實時地對每一筆交易進行檢測從而定位欺詐行為。
Spark Streaming不僅能夠非常好地解決這些問題,同時它還統一了技術框架,使用了與Spark一致的編程模型和處理引擎。而在Spark Streaming出現之前,用戶需要借助多種開源軟件才能構建出具有流處理、批處理和機器學習能力的系統。
Spark Streaming是在2013年被添加到Apache Spark中的,作為核心Spark API的擴展它允許數據工程師和數據科學家實時地處理來自于Kafka、Flume以及Amazon Kinesis等多種源的數據。這種對不同數據的統一處理能力就是Spark Streaming會被大家迅速采用的關鍵原因之一。
Spark Streaming能夠按照batch size(如1秒)將輸入數據分成一段段的離散數據流(Discretized Stream,即DStream),這些流具有與RDD一致的核心數據抽象,能夠與MLlib和Spark SQL等Spark組件無縫集成。
通過Spark Streaming開發者能夠容易地使用一種框架滿足所有的處理需求,例如通過MLlib離線訓練模型,然后直接在Spark Streaming中使用訓練好的模型在線處理實時數據。同時,開發者編寫的代碼和業務邏輯也能夠在流處理、批處理和交互式處理引擎中共享和重用。此外,流數據源中的數據還可以與很多其他的Spark SQL能夠訪問的靜態數據源進行聯合。例如,在將Amazon Redshift的靜態數據推送到下游系統之前,可以先將其加載到Spark的內存中進行處理以豐富流數據。
雖然針對不同的目標和業務案例使用Spark Streaming的方式也不同,但其主要場景包括:
例如,Uber通過Kafka、Spark Streaming和HDFS構建了持續性的ETL管道,該管道首先對每天從移動用戶那里收集到的TB級的事件數據進行轉換,將原始的非結構化事件數據轉換成結構化的數據,然后再進行實時地遙測分析。Pinterest的ETL數據管道始于Kafka,通過Spark Streaming將數據推入Spark中實時分析全球用戶對Pin的使用情況,從而優化推薦引擎為用戶顯示更相關的Pin。Netflix也是通過Kafka和Spark Streaming構建了實時引擎,對每天從各種數據源接收到的數十億事件進行分析完成電影推薦。
轉載自
2016革新之年,雙節同慶驚喜不斷!優惠詳情點擊查看>>
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn