Spark技術的總結 以及同storm,Flink技術的對比

##spark總結 ###1.Spark的特色:java

  • 高可伸縮性
  • 高容錯
  • 基於內存計算
  • 支持多種語言:java,scala,python,R
  • 高質量的算法,比MapReduce快100倍
  • 多種調度引擎:能夠運行於YARN,Mesos,standalone 等。

###2.spark的提供的功能 以及應用場景python

**spark功能模塊 ** 應用場景
RDD 離線數據處理
Spark SQL, DataFrames and Datasets 結構化的關係數據運算
Structured Streaming 結構化流:統一批處理與流處理計算的工具
Spark Streaming 流數據實時計算
Machine Learning (MLlib) 機器學習
GraphX 圖數據計算
SparkR R on Spark

###3.spark重大版本更新算法

spark2.3.0的重大更新:sql

一、支持第四種調度引擎 Kubernetes clusters。
二、Structured Streaming 引入了低延遲的連續處理(continuous processing);

spark2.0.0的重大更新:編程

一、SparkSession:這是一個新入口,取代了本來的SQLContext與HiveContext
二、基於DataFrame的機器學習API將做爲主ML API出現;基於RDD的API進入維護模式。
三、spark 本身的標準SQL(Ansi-sql sql-2003標準)解析引擎,同時兼容hive-SQL. 
四、數據框(DataFrame)/Dataset (數據集)API的統一。

spark1.6.X的重大更新:架構

1. 新增Dataset API
2. 使用堆外內存執行SQL,避免GC形成的瓶頸
3. 支持對非標準JSON文件的讀操做
4. 支持基於文件的SQL查詢。

###4. spark-streaming,storm,Flink對比app

  • 技術特性上的對比
**對比項 ** ** spark-streaming** ** storm** flink
流模式 微批處理 行處理 / 或者微批處理 行處理/或者微批處理
可靠性 Exactly-Once At-Least-Once Exactly-Once
延遲 秒級 毫秒級 毫秒級
吞吐量 比較高 很是高 很是高
容錯機制 Recourd ACKs機制 基於RDD的 CheckPoint CheckPoint
是否有狀態
支持SQL 支持 不支持 支持
與Hadoop兼容性 支持HDFS、HBase等數據源 不支持 支持HDFS、HBase等數據源

storm 的任務編程組件是: Topology任務,由spout,bolt組成的DAG 拓撲結構。 spark-streaming任務變成組件:DStream 數據流的個各類處理方法。運維

spark-streaming 和 Flink 是將Flink Job 轉換成 JobGraph -> ExecutionGraph.機器學習

  • 平臺架構上的對比
對比項 spark-streaming storm flink
系統角色 driver,executor Numbius,supervisor,worker Client,JobManager,Taskmanager
應用名稱 application Topology application
組件接口 DataStream DStream spout,bolt
部署方式 YARN,standalone numbius-supervisor YARN, standalone

結論:工具

  1. 因爲spark 和Flink均可以基於YARN的方式部署,共用了hadoop生態的HDFS,YARN組件,下降了基礎平臺的運維工做量。同時Flink的毫秒級延遲實時計算能力和spark秒級延遲實時計算能力是一種相互補充。Flink和spark造成互補且競爭關係。
  2. Flink 在 Mlib,SQL 支持方面都有支持,功能方面和spark競爭關係,都是朝着生態方向發展。不過均可以基於相同的底層平臺,你們切換和相互替換的成本都不高。
  3. 雖然storm的也能夠基於yarn部署,但這不是其主流使用場景,因此在大數據基礎平臺方案中Flink能夠最終替換的storm平臺。
相關文章
相關標籤/搜索