Apache Spark這款工具主要是用於大規模數據處理的快速通用引擎,此工具與MapReduce不同,Spark並不局限於編寫map和reduce兩個方法,其提供了更為強大的內存計算(in-memory computing)模型,使得用戶可以通過編程將數據讀取到集群的內存當中,並且可以方便用戶快速地重複查詢,非常適合用於實現機器學習算法。
Spark是一個基於內存計算的開源集群計算係統,目的是更快速的進行數據分析。Spark由加州伯克利大學AMP實驗室Matei為主的小團隊使用Scala開發開發,其核心部分的代碼隻有63個Scala文件,非常輕量級。 Spark 提供了與 Hadoop 相似的開源集群計算環境,但基於內存和迭代優化的設計,Spark 在某些工作負載表現更優秀。
1. 輕量級快速處理。著眼大數據處理,速度往往被置於第一位,我們經常尋找能盡快處理我們數據的工具。Spark允許Hadoop集群中的應用程序在內存中以100倍的速度運行,即使在磁盤上運行也能快10倍。Spark通過減少磁盤IO來達到性能提升,它們將中間處理數據全部放到了內存中。
Spark使用了RDD(Resilient Distributed Dataset)的理念,這允許它可以透明的內存中存儲數據,隻在需要時才持久化到磁盤。這種做法大大的減少了數據處理過程中磁盤的讀寫,大幅度的降低了所需時間。
2. 易於使用,Spark支持多語言。Spark允許Java、Scala及Python,這允許開發者在自己熟悉的語言環境下進行工作。它自帶了80多個高等級操作符,允許在shell中進行交互式查詢。
3. 支持複雜查詢。在簡單的“map”及“reduce”操作之外,Spark還支持SQL查詢、流式查詢及複雜查詢,比如開箱即用的機器學習機圖算法。同時,用戶可以在同一個工作流中無縫的搭配這些能力。
4. 實時的流處理。對比MapReduce隻能處理離線數據,Spark支持實時的流計算。Spark依賴Spark Streaming對數據進行實時的處理,當然在YARN之後Hadoop也可以借助其他的工具進行流式計算。對於Spark Streaming,Cloudera的評價是:
簡單:輕量級且具備功能強大的API,Sparks Streaming允許你快速開發流應用程序。
容錯:不像其他的流解決方案,比如Storm,無需額外的代碼和配置,Spark Streaming就可以做大量的恢複和交付工作。
集成:為流處理和批處理重用了同樣的代碼,甚至可以將流數據保存到曆史數據中。
5. 可以與Hadoop和已存Hadoop數據整合。Spark可以獨立的運行,除了可以運行在當下的YARN集群管理之外,它還可以讀取已有的任何Hadoop數據。這是個非常大的優勢,它可以運行在任何Hadoop數據源上,比如HBase、HDFS等。這個特性讓用戶可以輕易遷移已有Hadoop應用,如果合適的話。
6. 活躍和無限壯大的社區。Spark起源於2009年,當下已有超過50個機構250個工程師貢獻過代碼,和去年六月相比,代碼行數幾乎擴大三倍,這是個令人豔羨的增長。
Spark通過在數據處理過程中成本更低的洗牌(Shuffle)方式,將MapReduce提升到一個更高的層次。利用內存數據存儲和接近實時的處理能力,Spark比其他的大數據處理技術的性能要快很多倍。
Spark還支持大數據查詢的延遲計算,這可以幫助優化大數據處理流程中的處理步驟。Spark還提供高級的API以提升開發者的生產力,除此之外還為大數據解決方案提供一致的體係架構模型。
Spark將中間結果保存在內存中而不是將其寫入磁盤,當需要多次處理同一數據集時,這一點特別實用。Spark的設計初衷就是既可以在內存中又可以在磁盤上工作的執行引擎。當內存中的數據不適用時,Spark操作符就會執行外部操作。Spark可以用於處理大於集群內存容量總和的數據集。
Spark會嚐試在內存中存儲盡可能多的數據然後將其寫入磁盤。它可以將某個數據集的一部分存入內存而剩餘部分存入磁盤。開發者需要根據數據和用例評估對內存的需求。Spark的性能優勢得益於這種內存中的數據存儲。
Spark的其他特性包括:
支持比Map和Reduce更多的函數。
優化任意操作算子圖(operator graphs)。
可以幫助優化整體數據處理流程的大數據查詢的延遲計算。
提供簡明、一致的Scala,Java和Python API。
提供交互式Scala和Python Shell。目前暫不支持Java。
Spark是用Scala程序設計語言編寫而成,運行於Java虛擬機(JVM)環境之上。目前支持如下程序設計語言編寫Spark應用:
Scala
Java
Python
Clojure
R
70KB / 03-27
係統其他
下載21.5M / 02-01
遊戲補丁
下載231KB / 09-26
係統優化
下載76.4M / 03-25
立即下載55M / 06-05
立即下載237.9M / 04-13
立即下載140.5M / 03-06
立即下載900.9M / 03-02
立即下載96.2M / 07-06
立即下載311.2M / 07-06
立即下載335M / 07-06
立即下載200M / 07-06
立即下載413.8M / 07-06
立即下載353.9M / 06-05
立即下載131.8M / 04-13
立即下載230.8M / 03-03
立即下載195.6M / 03-03
立即下載165.4M / 03-03
立即下載45.6M / 09-08
立即下載665.2M / 07-06
立即下載2.84G / 07-06
立即下載93M / 07-06
立即下載338.3M / 07-06
立即下載1.38G / 07-26
立即下載488.3M / 07-16
立即下載109.8M / 06-03
立即下載142M / 01-08
立即下載1.2M / 11-23
立即下載548.8M / 04-13
立即下載1.6M / 04-13
立即下載1.48G / 03-18
立即下載646.6M / 03-03
立即下載133.7M / 03-03
立即下載325.8M / 06-07
立即下載60M / 04-29
立即下載254M / 04-25
立即下載659M / 04-23
立即下載1M / 12-26
立即下載253.4M / 12-08
立即下載253M / 12-08
立即下載1.19G / 11-16
立即下載110.5M / 04-23
立即下載26.7M / 03-16
立即下載488.3M / 07-16
立即下載248.9M / 12-08
立即下載248.9M / 12-08
立即下載201.2M / 04-13
立即下載100.6M / 03-06
立即下載148.9M / 03-06
立即下載1.12G / 07-06
立即下載1.25G / 07-06
立即下載9.48G / 07-06
立即下載50KB / 07-06
立即下載116.2M / 04-10
立即下載1.92G / 04-17
立即下載201.5M / 04-13
立即下載7.31G / 07-01
立即下載94.3M / 07-06
立即下載2.48G / 07-06
立即下載7.63G / 07-06
立即下載1M / 07-06
立即下載778.1M / 07-06
立即下載509.7M / 07-06
立即下載561.8M / 07-11
立即下載1.32G / 01-19
立即下載72M / 07-06
立即下載548.7M / 07-06
立即下載1.00G / 07-06
立即下載9.13G / 07-06
立即下載126.2M / 07-06
立即下載72M / 07-06
立即下載105.1M / 07-06
立即下載132M / 07-06
立即下載