回覆列表
  • 1 # 程式技術員

    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模式的區別:

  • 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 看一下執行結果。

  • 中秋節和大豐收的關聯?
  • 今年登哥季後賽能夠再進一步嗎?