官網地址:http://spark.apache.org/html
Apache Spark™是用於大規模數據處理的統一分析引擎。算法
從右側最後一條新聞看,Spark也用於AI人工智能shell
中間結果輸出:基於MapReduce的計算引擎一般會將中間結果輸出到磁盤上,進行存儲和容錯。出於任務管道承接的,考慮,當一些查詢翻譯到MapReduce任務時,每每會產生多個Stage,而這些串聯的Stage又依賴於底層文件系統(如HDFS)來存儲每個Stage的輸出結果。apache
Spark是MapReduce的替代方案,並且兼容HDFS、Hive,可融入Hadoop的生態系統,以彌補MapReduce的不足。框架
運行速度提升100倍。機器學習
Apache Spark使用最早進的DAG調度程序,查詢優化程序和物理執行引擎,實現批量和流式數據的高性能。分佈式
Spark支持Java、Python和Scala的API,還支持超過80種高級算法,使用戶能夠快速構建不一樣的應用。並且Spark支持交互式的Python和Scala的shell,能夠很是方便地在這些shell中使用Spark集羣來驗證解決問題的方法。工具
Spark提供了統一的解決方案。Spark能夠用於批處理、交互式查詢(Spark SQL)、實時流處理(Spark Streaming)、機器學習(Spark MLlib)和圖計算(GraphX)。這些不一樣類型的處理均可以在同一個應用中無縫使用。Spark統一的解決方案很是具備吸引力,畢竟任何公司都想用統一的平臺去處理遇到的問題,減小開發和維護的人力成本和部署平臺的物力成本。oop
Spark能夠很是方便地與其餘的開源產品進行融合。好比,Spark可使用Hadoop的YARN和Apache Mesos做爲它的資源管理和調度器,器,而且能夠處理全部Hadoop支持的數據,包括HDFS、HBase和Cassandra等。這對於已經部署Hadoop集羣的用戶特別重要,由於不須要作任何數據遷移就可使用Spark的強大處理能力。Spark也能夠不依賴於第三方的資源管理和調度器,它實現了Standalone做爲其內置的資源管理和調度框架,這樣進一步下降了Spark的使用門檻,使得全部人均可以很是容易地部署和使用Spark。此外,Spark還提供了在EC2上部署Standalone的Spark集羣的工具。性能
Mesos:Spark能夠運行在Mesos裏面(Mesos 相似於yarn的一個資源調度框架)
standalone:Spark本身能夠給本身分配資源(master,worker)
YARN:Spark能夠運行在yarn上面
Kubernetes:Spark接收 Kubernetes的資源調度
Spark組成(BDAS):全稱伯克利數據分析棧,經過大規模集成算法、機器、人之間展示大數據應用的一個平臺。也是處理大數據、雲計算、通訊的技術解決方案。
它的主要組件有:
SparkCore:將分佈式數據抽象爲彈性分佈式數據集(RDD),實現了應用任務調度、RPC、序列化和壓縮,併爲運行在其上的上層組件提供API。
SparkSQL:Spark Sql 是Spark來操做結構化數據的程序包,可讓我使用SQL語句的方式來查詢數據,Spark支持 多種數據源,包含Hive表,parquest以及JSON等內容。
SparkStreaming: 是Spark提供的實時數據進行流式計算的組件。
MLlib:提供經常使用機器學習算法的實現庫。
GraphX:提供一個分佈式圖計算框架,能高效進行圖計算。
BlinkDB:用於在海量數據上進行交互式SQL的近似查詢引擎。
Tachyon:之內存爲中心高容錯的的分佈式文件系統。