參考:https://www.jianshu.com/p/5cc07eae1a0c
1.相關框架
僅批處理框架:
Apache Hadoop
僅流處理框架:
Apache Storm
Apache Samza
混合框架:
Apache Spark
Apache Flink
2.批處理系統
批處理在大數據世界有着悠久的歷史。批處理主要操作大容量靜態數據集,並在計算過程完成后返回結果。
批處理模式中使用的數據集通常符合下列特征...
-
有界:批處理數據集代表數據的有限集合
-
持久:數據通常始終存儲在某種類型的持久存儲位置中
-
大量:批處理操作通常是處理極為海量數據集的唯一方法
批處理非常適合需要訪問全套記錄才能完成的計算工作。例如在計算總數和平均數時,必須將數據集作為一個整體加以處理,而不能將其視作多條記錄的集合。這些操作要求在計算進行過程中數據維持自己的狀態。
需要處理大量數據的任務通常最適合用批處理操作進行處理。無論直接從持久存儲設備處理數據集,或首先將數據集載入內存,批處理系統在設計過程中就充分考慮了數據的量,可提供充足的處理資源。由於批處理在應對大量持久數據方面的表現極為出色,因此經常被用於對歷史數據進行分析。
大量數據的處理需要付出大量時間,因此批處理不適合對處理時間要求較高的場合。
3.流處理系統
流處理系統會對隨時進入系統的數據進行計算。相比批處理模式,這是一種截然不同的處理方式。流處理方式無需針對整個數據集執行操作,而是對通過系統傳輸的每個數據項執行操作。
流處理中的數據集是“無邊界”的,這就產生了幾個重要的影響:
-
完整數據集只能代表截至目前已經進入到系統中的數據總量。
-
工作數據集也許更相關,在特定時間只能代表某個單一數據項。
-
處理工作是基於事件的,除非明確停止否則沒有“盡頭”。處理結果立刻可用,並會隨着新數據的抵達繼續更新。
