-
1 # 程式技術員
-
2 # 大資料之眸Spark特性
Spark與Hadoop的功能性質都是一樣的,就是提供為大規模資料處理而設計的快速通用的計算引擎。簡單通俗點講,就是Spark叢集能夠容納足夠大規模(就是未知而且規模不停增長的)資料。 Spark與Hadoop相似,但總體來說比Hadoop有優勢,主要表現在某些工作負載方面比Hadoop更加優越,比如記憶體計算下Spark比Hadoop快很多倍,提供了80多個高階運算子很易用,提供了大量的庫包括SQL、DataFrames、MLlib、GraphX、Spark Streaming等可以在同一個應用程式中無縫組合使用這些庫。
典型的應用場景比如大資料在廣告、分析報表、推薦系統等方面的應用,比如大資料做應用分析、效果分析、定向最佳化、最佳化排名、個性化推薦、熱點點選分析等等。Spark主要使用scala(面向物件、函數語言程式設計語言)來實現,當然也支援Java、Python等語言。
目前用得比較成功的比如:
1.騰訊社交廣告(原名廣點通)。藉助Spark快速迭代的優勢,實現了實時採集、分析、預測,在廣告投放系統上,可以達到支援每天上百億的請求資料量。而其日誌資料即時查詢也是達到了非常快速。
2.淘寶。搜尋和廣告業務使用Spark,用於推薦相關演算法上,解決了許多問題。
3.優酷土豆。開始使用的是Hadoop,出現了很多問題,包括商業智慧反應速度慢,效率不高等。後使用Spark,效能提升很多,互動響應很快。
未來發展如今Spark仍然是非常火熱的大資料框架,以其RDD抽象、記憶體計算以及活躍的社群聞名,但在流處理上差強人意,因此阿里巴巴目前已經將目光轉為Flink--一種流計算處理框架,同樣也可以完成批處理任務,因此Spark的未來之路註定不會一馬平川,還需要開發者投入更多的精力去最佳化計算和提升算力。
-
3 # 桃花原記
Spark的應用有個流程:
其實就是資料分析的過程 - 接收,處理,輸出一次性完成的過程!
使用Spark最簡單的方法:就是直接在你的機器上使用Pyspark。
它的前提需要安裝Python。
然後到Spark的官網上去下載Spark的安裝包。
Spark支援多種語言,其中有一種就是Python,還有Java/Scala/R語言。
安裝後,你就可以把PySpark的互動介面開啟,在裡面輸入一個簡單的case 看一下執行結果。
回覆列表
1.什麼是Spark
Spark是一種通用的大資料計算框架,跟傳統大資料Hadoop的MapReduce引擎不同的是,Spark主要基於記憶體計算,而MapReduce則基於磁碟計算。
Spark是加州大學伯克利分校AMP實驗室開發的通用記憶體平行計算框架,用於構建大型的、低延遲的資料分析應用程式。Spark主要使用Scala語言開發,當然也是支援Python、Java和R語言開發的。
2.Spark發展歷史2009年由Berkeley"s AMPLab開始編寫最初的原始碼
2010年開放原始碼
2013年6月進入Apache孵化器專案
2014年2月成為Apache的頂級專案(8個月時間)
2014年5月底Spark1.0.0釋出,打破Hadoop保持的基準排序紀錄
2014年12月Spark1.2.0釋出
2015年11月Spark1.5.2釋出
2016年1月Spark1.6釋出
2016年12月Spark2.1釋出
3.Spark有什麼優點?執行速度快:使用DAG執行引擎以支援迴圈資料流與記憶體計算,當然也有部分計算基於磁碟,比如shuffle。
易用性好:支援使用Scala、Java、Python和R語言進行程式設計,可以透過Spark Shell進行互動式程式設計 。
通用性強:Spark提供了完整而強大的工具,包括SQL查詢、流式計算、機器學習和圖演算法元件。
隨處執行:可運行於獨立的叢集模式中,可運行於Hadoop中,可以訪問HDFS、HBase、Hive等多種資料來源
4.Spark跟Hadoop對比解決問題的出發點不一樣,Hadoop用普通硬體解決儲存和計算問題,Spark用於構建大型的、低延遲的資料分析應用程式,不實現儲存。Spark是在借鑑了MapReduce之上發展而來的,繼承了其分散式平行計算的優點並改進了MapReduce明顯的缺陷。
Spark中間資料放到記憶體中,迭代運算效率高。Spark引進了彈性分散式資料集RDD的抽象,資料物件既可以放在記憶體,也可以放在磁碟,容錯性高,可用自動重建。RDD計算時可以透過CheckPoint來實現容錯。
Hadoop只提供了Map和Reduce操作,Spark更加通用,提供的資料集操作型別有很多種,主要分為: Transformations和Actions兩大類運算元。Spark主要用於大資料的計算,而Hadoop以後主要用於大資料的儲存(HDFS),以及資源排程(Yarn)。Spark+Hadoop的組合,是未來大據領域最熱門的組合,也是最有前景的組合! 當然spark也有自己的叢集模式。spark與hadoop
spark VS mapreduce
優點:1.shuffle
對比,不用等,用的時候再排序。2.可以把多次使用的資料放到記憶體中
3.會的招式多,各種運算元方便你處理資料缺點:過度依賴記憶體,記憶體不夠用了就很難堪5.spark生態spark core實現了spark的基本功能、包括任務排程、記憶體管理、錯誤恢復與儲存系統互動等模組。spark core中還包含了對彈性分散式資料集(RDD)的定義。spark sql是spark用來操作結構化資料的程式,透過SPARK SQL,我們可以使用SQL或者HIVE(HQL)來查詢資料,支援多種資料來源,比如HIVE表就是JSON等,除了提供SQL查詢介面,還支援將SQL和傳統的RDD結合,開發者可以在一個應用中同時使用SQL和程式設計的方式(API)進行資料的查詢分析。Spark Streaming是Spark提供的對實時資料進行流式計算的元件,比如網頁伺服器日誌,或者是訊息佇列都是資料流。MLLib是Spark中提供常見的機器學習功能的程式庫,包括很多機器學習演算法,比如分類、迴歸、聚類、協同過濾等。GraphX是用於圖計算的比如社交網路的朋友關係圖。
6.Spark應用場景1.Yahoo將Spark用在Audience Expansion中的應用,進行點選預測和即席查詢等。2.淘寶技術團隊使用了Spark來解決多次迭代的機器學習演算法、高計算複雜度的演算法等,應用於內容推薦、社群發現等3.騰訊大資料精準推薦藉助Spark快速迭代的優勢,實現了在“資料實時採集、演算法實時訓練、系統實時預測”的全流程實時並行高維演算法,最終成功應用於廣點通pCTR投放系統上。4.優酷土豆將Spark應用於影片推薦(圖計算)、廣告業務,主要實現機器學習、圖計算等迭代計算
7.Spark四種主要執行方式Local:主要用於本地開發除錯 Standalone:spark的排程模式 On YARN:基於Hadoop的叢集模式On Mesos:沒用過,不瞭解。
Standalone和Yarn模式的區別: