Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用的并行,Spark,擁有Hadoop MapReduce所具有的優點;但不同于MapReduce的是Job中間輸出結果可以儲存在記憶體中,進而不再需要讀寫HDFS,是以Spark能更好地适用于資料挖掘與機器學習等需要疊代的map reduce的算法。

Spark是基于記憶體,是雲計算領域的繼Hadoop之後的下一代的最熱門的通用的并行計算架構開源項目,尤其出色的支援Interactive Query、流計算、圖計算等。
Spark在機器學習方面有着無與倫比的優勢,特别适合需要多次疊代計算的算法。同時Spark的擁有非常出色的容錯和排程機制,確定系統的穩定運作,Spark目前的發展理念是通過一個計算架構集合SQL、Machine Learning、Graph Computing、Streaming Computing等多種功能于一個項目中,具有非常好的易用性。目前SPARK已經建構了自己的整個大資料處理生态系統,如流處理、圖技術、機器學習、NoSQL查詢等方面都有自己的技術,并且是Apache頂級Project,可以預計的是2014年下半年在社群和商業應用上會有爆發式的增長。Spark最大的優勢在于速度,在疊代處理計算方面比Hadoop快100倍以上;Spark另外一個無可取代的優勢是:“One Stack to rule them all”,Spark采用一個統一的技術堆棧解決了雲計算大資料的所有核心問題,這直接奠定了其一統雲計算大資料領域的霸主地位;
下圖是使用邏輯回歸算法的使用時間:
Spark目前支援scala、python、JAVA程式設計。
作為Spark的原生語言,scala是開發Spark應用程式的首選,其優雅簡潔的代碼,令開發過mapreduce代碼的碼農感覺象是上了天堂。
可以架構在hadoop之上,讀取hadoop、hbase資料。
1、standalone模式,即獨立模式,自帶完整的服務,可單獨部署到一個叢集中,無需依賴任何其他資源管理系統。
2、Spark On Mesos模式。這是很多公司采用的模式,官方推薦這種模式(當然,原因之一是血緣關系)。
3、Spark On YARN模式。這是一種最有前景的部署模式。
流程:進入linux->安裝JDK->安裝scala->安裝spark。
JDK的安裝和配置(略)。
下載下傳後解壓縮。
source /etc/profile
scala設定成功。
進入$SPARK_HOME/bin,運作
運作結果
可以看到輸出結果為3.14438。