隨着大數據的發展,人們對大數據的處理要求也愈來愈高,原有的批處理框架MapReduce適合離線計算,卻沒法知足實時性要求較高的業務,如實時推薦、用戶行爲分析等。 Spark Streaming是創建在Spark上的實時計算框架,經過它提供的豐富的API、基於內存的高速執行引擎,用戶能夠結合流式、批處理和交互試查詢應用。本文將詳細介紹Spark Streaming實時計算框架的原理與特色、適用場景。linux
計算性能
容錯性
實時性
可用性
一致性
擴展性
吞吐量
性能優化編程
storm是實時處理
,spark和hadoop是批處理
,二者是互補。在Hadoop2.0以後,hadoop使用了新的yarn框架,map/reduce只是其中一種默許了,spark也能夠在hadoop的yarn框架下運行的
,因此2者還會是融合的。
spark還有與storm相同功能的 Spark Steaming,實時處理流式數據。能夠順着Hadoop -> spark -> spark Steaming
一路學下去,storm是否學習,你能夠本身選擇下。若是有相同功能的spark Steaming,確定是學習spark Steaming啦。性能優化
http://www.csdn.net/article/2014-01-28/2818282-Spark-Streaming-big-data框架
提到Spark Streaming,咱們不得不說一下BDAS(Berkeley Data Analytics Stack),這個伯克利大學提出的關於數據分析的軟件棧。從它的視角來看,目前的大數據處理能夠分爲如如下三個類型。
複雜的批量數據處理(batch data processing),一般的時間跨度在數十分鐘到數小時之間。
基於歷史數據的交互式查詢(interactive query),一般的時間跨度在數十秒到數分鐘之間。
基於實時數據流的數據處理(streaming data processing),一般的時間跨度在數百毫秒到數秒之間。
目前已有不少相對成熟的開源軟件來處理以上三種情景,咱們能夠利用MapReduce來進行批量數據處理,能夠用Impala來進行交互式查詢,對於流式數據處理,咱們能夠採用Storm。對於大多數互聯網公司來講,通常都會同時遇到以上三種情景,那麼在使用的過程當中這些公司可能會遇到以下的不便。分佈式
http://www.linuxidc.com/Linux/2013-08/88593.htm
mapreduce分佈式計算框架
函數式編程
Mesos ??
HDFS 和 AWS S3 兩種分佈式存儲環境函數式編程
RDD(Resilient distributed datasets )彈性分佈式數據集
Local模式和Mesos模式函數