如今Apache Spark已造成一個豐富的生態系統,包括官方的和第三方開發的組件或工具。後面主要給出5個使用普遍的第三方項目。算法
Spark官方構建了一個很是緊湊的生態系統組件,提供各類處理能力。 下面是Spark官方給出的生態系統組件(引自Spark官方文檔)shell
Spark DataFrames:列式存儲的分佈式數據組織,相似於關係型數據表。數據庫
Spark SQL:能夠執行SQL查詢,包括基本的SQL語法和HiveQL語法。讀取的數據源包括Hive表、Parquent文件、JSON數據、關係數據庫(MySQL等)等。性能優化
Spark Streaming:Spark Streaming是Spark核心API,易擴展、高吞吐量、流式數據容錯。框架
MLlib:Spark的機器學習庫,由常規的機器學習算法和基礎構成,包括但不限於分類算法、迴歸算法、聚類算法、協調過濾算法、降維算法等。機器學習
GraphX:Spark GraphX是一個分佈式圖處理框架,基於Spark平臺提供對圖計算和圖挖掘的接口,方便用戶對分佈式圖處理的需求。分佈式
Spark Core API:Spark提供多種語言的API,包括R、SQL、Python、Scala和Java。工具
除了上述官方的Spark組件外,還有些是在某種情形下必用的項目。如下只是簡單的列出這些重量級 項目,而不涉及一些性能指標。性能
Mesos學習
Mesos是開源的資源統一管理和調度平臺。抽象物理機的CPU、內存、存儲和計算資源,再由框架自身的調度器決定資源的使用者。
Mesos是Master/Slave結構,由Mesos-master,Mesos-slave,Framework和executor四個組件構成。
爲何官方選用Mesos,而不是Spark standalone模式或者基於Yarn框架?由Spark開發者所寫的書《Learning Spark》:Mesos優於其它兩個資源框架是由於Mesos的細粒度調度,這樣可以讓多用戶運行Spark shell佔有更少的CPU。
Spark Cassandra Connector
Cassandra是一個易擴展、高性能的數據庫。 Spark Cassandra Connector如今是Spark和Cassandra表間直接交互的鏈接器,高度活躍的開源軟件。 Spark Cassandra Connector庫讓你讀Cassandra表就如同Spark RDD同樣,一樣能夠寫Spark RDD到Cassandra表,並能夠在Spark程序中執行CQL語句。
ZepellinZepellin是一個集成IPythoon notebook風格的Spark應用。Zepellin能夠基於Spark和Scala,容許用戶很簡單直接的在他們的博客或者網站發佈代碼執行的結果。Zepellin也支持其它語言插件,包括Scala和Spark,Python和Spark,SparkSQL,HIve,Markdown和Shell。
Spark Job ServerSpark Job Server提供RESTful接口來提交和管理Spark jobs,jar包和job上下文。Spark Job Server提供Spark任務相關的運行健康信息。
Alluxio
Alluxio是一個分佈式內存文件系統,它在減輕Spark內存壓力的同時,也賦予Spark內存快速讀寫海量數據的能力。Alluxio之前叫作Tachyon,即鎢絲。Spark jobs能夠不作任何改變便可運行在Alluxio上,並能獲得極大的性能優化。Alluxio宣稱:「百度使用Alluxio能夠提升30倍多數據處理能力」。