Spark學習筆記之淺釋

概述:

    Spark是一個基於內存計算的開源集羣計算系統,目的是讓數據分析更加快速。

    Spark非常小巧玲瓏,由加州伯克利大學AMP實驗室的小團隊開發。使用的語言

是Scala,項目的core部分的代碼只有63個Scala文件。(AMP實驗室名字有點意思:

Algorithm Machine People,算法、機器、人)

    Spark是一種與Hadoop相似的開源集羣計算環境,但是兩者之間還存在一些不同

之處,這些有用的不同之處使得Spark在某些工作負載方面表現得更加優越,換句話

說,Spark啓用了內存分佈數據集,除了能夠提供交互式查詢外,它還可以優化迭代

工作負載。

    Spark是在Scala語言中實現的,它將Scala用作其應用程序框架。與Hadoop不同,

Spark和Scala能夠緊密集成,其中的Scala可以像操作本地集合對象一樣輕鬆地操作

分佈式數據集。

    Spark還引進了豐富的RDD(彈性分佈式數據集)。RDD是分佈在一組節點中的只

讀對象集合。這些集合是彈性的,如果數據集一部分丟失,則可以對他們進行重建。

重建部分數據集的過程依賴於容錯機制,該機制可以維護“血統”(即允許基於數

據衍生過程重建部分數據集的信息)。RDD被表示爲一個Scala對象,並且可以從文

件中創建它;


總結:
  1.Spark是一個開發庫
  2.任何能運行成功的庫都可能成爲Spark的一部分
  3.通用,它可以和spark SQL,Spark Streaming,MLlib(machine leaning),Graphx無縫集成
    它是一個平臺,是一個通用的開發庫
  4.各個行業及專家的構思可集合至Spark,成爲強大的API
  
Spark優勢:

  1.首先Spark是基於內存的計算

  2.提供了支持DAG圖的分佈式並行計算框架,減少多次計算之間的中間結果IO開銷

  3.提供Cache機制來支持多次迭代計算或者數據共享,減少IO開銷

  4.RDD之間維護了血統關係,一旦RDD掛掉了,能通過父RDD自動重建保證了容錯性

  5.移動計算而非移動數據,RDD分區可以就近讀取分佈式文件系統中的數據塊到各

    個節點內存中進行計算

  6.使用多線程池模型來減少task啓動開銷

  7.shuffle過程中避免不必要的sort操作

  8.使用容錯的高可伸縮性的akka做爲通訊框架

  
運行框架:

  1.Hadoop的MapReduce框架平臺YARN

  2.Apache Mesos框架平臺

  3.Spark的Standalone框架平臺

  4.亞馬遜的AWS平臺


另,與Hadoop2.7.0一樣,社區決定從Spark1.5將不再支持JDK1.6
JDK1.7的參考資料:
http://liujunjie51072.blog.163.com/blog/static/868916212009915105633843/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章