為什麼使用Spark

2021-08-21 19:19:05 字數 1997 閱讀 8929

apache spark是乙個集群計算引擎,它抽象了底層分布式儲存和集群管理,,使它可以插入plugin大量的專門的儲存和集群管理工具。spark支援hdfs, cassandra, local storage, s3, 甚至傳統的關聯式資料庫作為儲存層,也可以和集群管理工具yarn, mesos一起工作,相對集群模式它還有單機模型,spark已經打破了由hadoop創造的排序記錄,本文介紹spark的優點以及和marreduce相比具有的效能優勢。

下面看看spark細節:

讓我們看看spark程式設計模型是如何解決上述問題:

更多案例見here.。

我們可以使用scala作為spark介面。**看起來很容易讀懂。請注意 sparkcontext是你指定spark配置的方式,規定如何連線到集群。剩下的**只是包含集合操作。這裡很重要的一點需要注意的是,由於rdd是懶賦值,直到我們實際上向spark要求結果之前是沒有**是在集群上執行的。它會在這種情況下將輸出結果儲存到目的地的路徑中。rdd允許有兩種型別的操作:第乙個是轉換集合,這些操作不賦值,而是產生新的rdd,,轉換會應用到這裡。spark建立可以建立轉換的代數dag,這些轉換是map flatmap reducebykey groupbykey join等等。第二個是乙個動作,這些都是終端操作,將觸發dag上的實際計算,比如count collect max等才真正被執行。

什麼不使用cascading scalding?這種比較是不公平的,cascading scalding是庫包,而spark是框架。這些庫包實際上是基於mr模型推出更新、豐富的抽象模型。他們不提供任何效能優勢。

spark成為乙個完整的計算引擎,它並不使用mr框架,但是有自己基於rdd的計算模型,而且提供了效能優勢。

它還允許我們可選擇在記憶體中處理rdd,這樣能提供令人難以置信的速度。除此之外,正如我們之前所討論的,它與儲存無關,這意味著它可以用來計算任何資料來源:本地檔案,s3儲存,hdfs,jdbc資料來源,cassandra等等。

正常的開發流程是怎樣的?

spark是記憶體計算?通常,,人們疑惑spark是記憶體計算引擎嗎?spark不僅in-memeory,它還提供基於記憶體可選的儲存,主要用於提高效能。引用官方文件,當資料超過記憶體時spark會執行額外操作。更為普遍的是,spark操作是符合mapreduce規範,可以指定torage_levels為memory-only, memory-and-disk和disk-only等,從記憶體到磁碟都可以。

spark是如何比hadoop mr提供更好效能?

mr的中間結果總是要持久儲存,這是為了容錯,但是會有很高io操作代價,而spark不會將這些結果持久化,除非使用者明確指定,啟用操作的管道化會大大提公升速度。

通常繁重網路io變成分布式系統的瓶頸。spark採取code-parallel模型,將**帶給資料,比如關閉序列化,,減少了網路操作,當地聚合結果有助於減少網路io的操作。

spark也允許在記憶體中儲存rdd和在不同操作中分享rdd,這是乙個巨大的效能提公升,前提是資料沒有填滿記憶體情況下,資料超過記憶體洩漏到磁碟,這完全是對程式設計師是透明的。在這種情況下,效能與傳統處理差不多。

總結:標準

map reduce

spark

簡潔複雜 需要樣本

幾乎沒有樣本

效能高延遲

非常快可測試性

通過庫包,但很麻煩

非常容易

迭代處理

非微不足道

直接資料探索性

不容易spark shell允許快速和簡單的資料探索

sql介面等

通過hive

建立在sparksql

容錯每個階段的處理結果存檔保障容錯

利用rdd的不變性啟用容錯

生態系統

很多任務具,但並不完全無縫整合,需要很多的努力使他們的無縫整合

統一的介面和sql一樣,流處理等單一抽象的rdd

在記憶體中計算

不可能的

可能的

什麼是 Spark 為什麼存在 Spark

spark 計算引擎 apache spark 是專為大規模資料處理而設計的快速通用的計算引擎。spark是uc berkeley amp lab 加州大學伯克利分校的amp實驗室 所開源的類hadoop mapreduce的通用並行框架,spark,擁有hadoop mapreduce所具有的優點...

Spark 為什麼比Hadoop快

spark sql比hadoop hive快,是有一定條件的,而且不是spark sql的引擎比hive的引擎快,相反,hive的hql引擎還比spark sql的引擎更快。color red b 其實,關鍵還是在於spark 本身快。b color color red size large b s...

Spark 為什麼比Hadoop快

spark sql比hadoop hive快,是有一定條件的,而且不是spark sql的引擎比hive的引擎快,相反,hive的hql引擎還比spark sql的引擎更快。color red b 其實,關鍵還是在於spark 本身快。b color color red size large b s...