能同時對實時流數據和離線數據進行(准)實時分析的技術或者框架有那些?
Spark streaming+Spark sql算一個,還看到http://druid.io,還有那些比較成熟或者性能高的框架或者技術組合?
同時滿足實時和離線,第一反應是
kafka+storm|hadoop
所有數據以topic形式緩衝在kafka隊列中,可以根據需求(實時或離線)將不同topic交給不同的處理框架計算。
=====================================
要選用什麼框架還是得根據自己的應用場景來選擇Storm是一個開源的流式處理框架,通過在線服務的形式,可以處理大規模源源不斷的數據流。主要應用在實時數據分析、在線機器學習、持續計算等方面。
Hadoop是離線批處理框架,實現了MapReduce的思想,將數據切片計算來處理大量的離線數據。主要適用場景包括海量數據的離線分析處理,大規模Web信息搜索,數據密集型並行計算等方面。
Spark是一個內存計算框架,類似MapReduce,但是計算更快,d因為它所有的中間計算結果均保存在內存中,不像hadoop需要io操作,將結果寫在hdfs中。Spark更適用於迭代計算需求好的場景。Apache Flink, 相對於spark steaming底層的micro-batch實現機制,Flink是native stream的機制來同時處理離線數據和實時數據。
還有最近Google聯合Apache 基金會一起來源的apache Beam編程模型。無論是對離線數據的批處理還是對實時無限數據集的流處理,都共同同一套API,你可以自由在下層配置想要運行的計算引擎(如Apache Storm,Apache Flink等已經有相應Runner來支持Beam 的統一編程模型)
歡迎關注我的微信公眾號進行交流~ 搜索simplecoding
推薦閱讀:
※Spark比Hadoop的優勢有這麼大嗎?
※矽谷之路57:深入淺出Spark(八)如何處理實時數據
※數據科學家必知必會的7款Python工具,你會幾個?
※Spark從1.4.x升級到1.6的喜人效果
※Spark SQL 和 Shark 在架構上有哪些區別?將來會合併嗎?