概念
流計算:實時獲取來自不同數據源的海量數據,經過實時分析處理,獲得有價值的信息。
流計算秉承一個基本理念,即數據的價值隨着時間的流逝而降低,如用戶點擊流。因此,當事件出現時就應該立即進行處理,而不是緩存起來進行批量處理。爲了及時處理流數據,就需要一個低延遲、可擴展、高可靠的處理引擎。
對於一個流計算系統來說,它應達到如下需求:
- 高性能:處理大數據的基本要求,如每秒處理幾十萬條數據;
- 海量式:支持TB級甚至是PB級的數據規模;
- 實時性:保證較低的延遲時間,達到秒級別,甚至是毫秒級別;
- 分佈式:支持大數據的基本架構,必須能夠平滑擴展;
- 易用性:能夠快速進行開發和部署;
- 可靠性:能可靠地處理流數據;
流計算框架
當前業界誕生了許多專門的流數據實時計算系統來滿足各自需求,目前有三類常見的流計算框架和平臺:
- 商業級的流計算平臺;
- 開源流計算框架;
- 公司爲支持自身業務開發的流計算框架。
商業級:IBM InfoSphere Streams和IBM StreamBase。較爲常見的是開源流計算框架,代表如下:
- Twitter Storm:免費、開源的分佈式實時計算系統,可簡單、高效、可靠地處理大量的流數據;
- Yahoo! S4(Simple Scalable Streaming System):開源流計算平臺,是通用的、分佈式的、可擴展的、分區容錯的、可插拔的流式系統。
公司爲支持自身業務開發的流計算框架:
- Facebook Puma
- Dstream(百度)
- 銀河流數據處理平臺(淘寶)