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