精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

科普Spark,Spark是什么,如何使用Spark

責任編輯:editor004

2014-11-21 17:35:38

摘自:36大數據

由于RDD的特性,Spark不適用那種異步細粒度更新狀態的應用,例如web服務的存儲或者是增量的web爬蟲和索引。

本文章可以解答以下問題:

1.Spark基于什么算法的分布式計算(很簡單)

2.Spark與MapReduce不同在什么地方

3.Spark為什么比Hadoop靈活

4.Spark局限是什么

5.什么情況下適合使用Spark

spark

  什么是Spark

Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用的并行計算框架,Spark基于map reduce算法實現的分布式計算,擁有Hadoop MapReduce所具有的優點;但不同于MapReduce的是Job中間輸出和結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數據挖掘與機器學習等需要迭代的map reduce的算法。其架構如下圖所示:

spark 大數據

  Spark與Hadoop的對比

Spark的中間數據放到內存中,對于迭代運算效率更高。

Spark更適合于迭代運算比較多的ML和DM運算。因為在Spark里面,有RDD的抽象概念。

Spark比Hadoop更通用

Spark提供的數據集操作類型有很多種,不像Hadoop只提供了Map和Reduce兩種操作。比如map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues, sort,partionBy等多種操作類型,Spark把這些操作稱為Transformations。同時還提供Count, collect, reduce, lookup, save等多種actions操作。

這些多種多樣的數據集操作類型,給給開發上層應用的用戶提供了方便。各個處理節點之間的通信模型不再像Hadoop那樣就是唯一的Data Shuffle一種模式。用戶可以命名,物化,控制中間結果的存儲、分區等。可以說編程模型比Hadoop更靈活。

不過由于RDD的特性,Spark不適用那種異步細粒度更新狀態的應用,例如web服務的存儲或者是增量的web爬蟲和索引。就是對于那種增量修改的應用模型不適合。

容錯性

在分布式數據集計算時通過checkpoint來實現容錯,而checkpoint有兩種方式,一個是checkpoint data,一個是logging the updates。用戶可以控制采用哪種方式來實現容錯。

可用性

Spark通過提供豐富的Scala, Java,Python API及交互式Shell來提高可用性。

Spark與Hadoop的結合

Spark可以直接對HDFS進行數據的讀寫,同樣支持Spark on YARN。Spark可以與MapReduce運行于同集群中,共享存儲資源與計算,數據倉庫Shark實現上借用Hive,幾乎與Hive完全兼容。

Spark的適用場景

Spark是基于內存的迭代計算框架,適用于需要多次操作特定數據集的應用場合。需要反復操作的次數越多,所需讀取的數據量越大,受益越大,數據量小但是計算密集度較大的場合,受益就相對較小(大數據庫架構中這是是否考慮使用Spark的重要因素)

由于RDD的特性,Spark不適用那種異步細粒度更新狀態的應用,例如web服務的存儲或者是增量的web爬蟲和索引。就是對于那種增量修改的應用模型不適合。

總的來說Spark的適用面比較廣泛且比較通用。

運行模式

本地模式

Standalone模式

Mesoes模式

yarn模式

Spark生態系統

Shark ( Hive on Spark): Shark基本上就是在Spark的框架基礎上提供和Hive一樣的H iveQL命令接口,為了最大程度的保持和Hive的兼容性,Shark使用了Hive的API來實現query Parsing和 Logic Plan generation,最后的PhysicalPlan execution階段用Spark代替Hadoop MapReduce。通過配置Shark參數,Shark可以自動在內存中緩存特定的RDD,實現數據重用,進而加快特定數據集的檢索。同時,Shark通過UDF用戶自定義函數實現特定的數據分析學習算法,使得SQL數據查詢和運算分析能結合在一起,最大化RDD的重復使用。

Spark streaming: 構建在Spark上處理Stream數據的框架,基本的原理是將Stream數據分成小的時間片斷(幾秒),以類似batch批量處理的方式來處理這小部分數據。Spark Streaming構建在Spark上,一方面是因為Spark的低延遲執行引擎(100ms+)可以用于實時計算,另一方面相比基于Record的其它處理框架(如Storm),RDD數據集更容易做高效的容錯處理。此外小批量處理的方式使得它可以同時兼容批量和實時數據處理的邏輯和算法。方便了一些需要歷史數據和實時數據聯合分析的特定應用場合。

Bagel: Pregel on Spark,可以用Spark進行圖計算,這是個非常有用的小項目。Bagel自帶了一個例子,實現了Google的PageRank算法。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 澄江县| 安福县| 明光市| 东乌珠穆沁旗| 贵港市| 临西县| 邯郸县| 横峰县| 永福县| 防城港市| 房山区| 耿马| 宜阳县| 体育| 伊宁县| 自治县| 区。| 永平县| 蓬莱市| 湟中县| 盘锦市| 安远县| 兴海县| 原平市| 太仓市| 涪陵区| 岐山县| 海原县| 榆社县| 土默特右旗| 安阳市| 东方市| 东兴市| 济源市| 汕尾市| 长乐市| 四会市| 玉屏| 湖州市| 内江市| 平陆县|