更新時間:2020-05-29 來源:黑馬程序員 瀏覽量:
近年來,Web應用、網(wǎng)絡監(jiān)控、傳感監(jiān)測、電信金融、生產(chǎn)制造等領域,對數(shù)據(jù)實時處理的需求不斷增強,而Spark中的SparkStreaming實時計算框架就是為了實現(xiàn)對數(shù)據(jù)實時處理的需求而設計的。在電子商務中,淘寶、京東等網(wǎng)站從用戶點擊的行為(如加入購物車)和瀏覽的歷史記錄中發(fā)現(xiàn)用戶的購買意圖和興趣,然后通過Sparkstreaming實時計算框架分析處理,為之推薦相關商品,從而有效地提高商品的銷售量,同時也增加了用戶的滿意度,可謂是“一舉兩得”。下面我們介紹實時計算的框架。
什么是實時計算?
傳統(tǒng)的數(shù)據(jù)處理流程(離線計算),先是收集數(shù)據(jù),然后將數(shù)據(jù)存儲到數(shù)據(jù)庫中。當需要某些數(shù)據(jù)時,可以通過對數(shù)據(jù)庫中的數(shù)據(jù)做操作,得到所需要的數(shù)據(jù),再進行其他相關的處理。這樣的處理流程會造成結果數(shù)據(jù)密集,結果數(shù)據(jù)密集則數(shù)據(jù)反饋不及時。在實時搜索的應用場景中,需要實時數(shù)據(jù)做決策,而傳統(tǒng)的數(shù)據(jù)處理并不能很好地解決問題,這就引出了一種新的數(shù)據(jù)計算一實時計算,它可以針對海量數(shù)據(jù)進行實時計算,無論是在數(shù)據(jù)采集還是數(shù)據(jù)處理中,都可以達到秒級別的處理要求。
在大數(shù)據(jù)技術中,有離線計算、批量計算、實時計算以及流式計算,其中,離線計算和實時計算指的是數(shù)據(jù)處理的延遲;批量計算和流式計算指的是數(shù)據(jù)處理的方式。
常用的實計算框架
目前,業(yè)內已經(jīng)衍生出許多實時計算數(shù)據(jù)的框架,如 Apache Spark Streaming、ApacheStorn、Apache Flink以及 Yahoo! S4。
1、 Apache Spark Streaming
Apache Spark
Streaming即Apache公司免費、開源的實時計算框架。它主要是把輸入的數(shù)據(jù)按時間進行切分,并對切分的數(shù)據(jù)塊進行并行計算處理,處理的速度可以達到秒級別。Netflix公司通過Kaka和SparkStreaming構建了實時引擎,對每天從各種數(shù)據(jù)源接收到的數(shù)十億數(shù)據(jù)進行分析,從而完成電影的推薦功能。
2、 Apache Storm
Apache Storm即Twitter公司免費、開源貢獻給Apache的一個分布式實時計算系統(tǒng)。它可以簡單、高效、可靠地實時處理海量數(shù)據(jù),處理數(shù)據(jù)的速度達到毫秒級別,并可將處理后的結果數(shù)據(jù)保存到持久化介質中(如數(shù)據(jù)庫、HDFS)。阿里巴巴公司的Jstorm,就是參考ApacheStorn開發(fā)的實時計算框架,可以說是Stom的增強版本,在網(wǎng)絡IO、線程模型、資源調度、可用性及穩(wěn)定性上都做了極大的改進,供很多企業(yè)使用。
3、 Apache Flink
Apache
Flink即Apache公司開源的計算框架。它不僅可以支持離線處理,還可以支持實時處理。由于離線處理和實時處理所提供的SLA(服務等級協(xié)議)是完全不相同的,所以離線處理一般需要支持低延遲的保證,而實時處理則需要支持高吞吐、高效率的處理。
4、 Yahoo! S4(Simple Scalable Streaming System)
Yahoo! S4即Yahoo公司開源的實時計算平臺。它是通用的、分布式的、可擴展的,并且還具有容錯和可插拔能力,供開發(fā)者輕松地處理源源不斷產(chǎn)生的數(shù)據(jù)。
猜你喜歡: