日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spark之2:原理介绍

發布時間:2024/1/23 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spark之2:原理介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

spark之2:原理介紹

@(SPARK)[spark, 大數據]

1、spark是一個基于內存計算的開源的集群計算系統,目的是讓數據分析更加快速。因此運行spark的機器應該盡量的大內存,如96G以上。
2、spark所有操作均基于RDD,操作主要分成2大類:transformation與action。
3、spark提供了交互處理接口,類似于shell的使用。
4、spark可以優化迭代工作負載,因為中間數據均保存于內存中。
5、spark 是在 Scala 語言中實現的,它可以使用scala、python進行交互式操作,還可以使用scala、python、java進行編程。
6、spark可以通過mesos運行在hdfs上,但hadoop2.x提供了YARN,這更方便于spark運行在hdfs,YARN還提供了內存、CPU的集群管理功能。
7、Spark提供的數據集操作類型有很多種,不像Hadoop只提供了Map和Reduce兩種操作。比如 map,filter, flatMap,sample, groupByKey, reduceByKey, union,join, cogroup,mapValues, sort,partionBy等多種操作類型,他們把這些操作稱為Transformations。同時還提供Count,collect, reduce, lookup, save等多種actions。這些多種多樣的數據集操作類型,給上層應用者提供了方便。各個處理節點之間的通信模型不再像Hadoop那樣就是唯一的 Data Shuffle一種模式。用戶可以命名,物化,控制中間結果的分區等。可以說編程模型比Hadoop更靈活.

==========================================================

以下內容摘自:http://www.itpub.net/thread-1864721-3-1.html

1、 Spark VSHadoop有哪些異同點?

Hadoop:分布式批處理計算,強調批處理,常用于數據挖掘、分析Spark:是一個基于內存計算的開源的集群計算系統,目的是讓數據分析更加快速, Spark 是一種與 Hadoop 相似的開源集群計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了內存分布數據集,除了能夠提供交互式查詢外,它還可以優化迭代工作負載。

Spark 是在 Scala 語言中實現的,它將 Scala 用作其應用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對象一樣輕松地操作分布式數據集。

盡 管創建 Spark 是為了支持分布式數據集上的迭代作業,但是實際上它是對 Hadoop 的補充,可以在 Hadoop 文件系統中并行運行。通過名為Mesos的第三方集群框架可以支持此行為。Spark 由加州大學伯克利分校 AMP 實驗室 (Algorithms,Machines,and People Lab) 開發,可用來構建大型的、低延遲的數據分析應用程序。

雖然 Spark 與 Hadoop 有相似之處,但它提供了具有有用差異的一個新的集群計算框架。首先,Spark 是為集群計算中的特定類型的工作負載而設計,即那些在并行操作之間重用工作數據集(比如機器學習算法)的工作負載。為了優化這些類型的工作負 載,Spark 引進了內存集群計算的概念,可在內存集群計算中將數據集緩存在內存中,以縮短訪問延遲.

在大數據處理方面相信大家對hadoop已經耳熟能詳,基于GoogleMap/Reduce來實現的Hadoop為開發者提供了map、reduce原 語,使并行批處理程序變得非常地簡單和優美。Spark提供的數據集操作類型有很多種,不像Hadoop只提供了Map和Reduce兩種操作。比如 map,filter, flatMap,sample, groupByKey, reduceByKey, union,join, cogroup,mapValues, sort,partionBy等多種操作類型,他們把這些操作稱為Transformations。同時還提供Count,collect, reduce, lookup, save等多種actions。這些多種多樣的數據集操作類型,給上層應用者提供了方便。各個處理節點之間的通信模型不再像Hadoop那樣就是唯一的 Data Shuffle一種模式。用戶可以命名,物化,控制中間結果的分區等。可以說編程模型比Hadoop更靈活.

2、Spark在容錯性方面是否比其他工具更有優越性?從Spark的論文《Resilient Distributed Datasets: AFault-TolerantAbstraction for In-Memory Cluster Computing》中沒看出容錯性做的有多好。倒是提到了分布式數據集計算,做checkpoint的兩種方式,一個是checkpoint data,一個是loggingthe updates。貌似Spark采用了后者。但是文中后來又提到,雖然后者看似節省存儲空間。但是由于數據處理模型是類似DAG的操作過程,由于圖中的某 個節點出錯,由于lineage chains的依賴復雜性,可能會引起全部計算節點的重新計算,這樣成本也不低。他們后來說,是存數據,還是存更新日志,做checkpoint還是由用 戶說了算吧。相當于什么都沒說,又把這個皮球踢給了用戶。所以我看就是由用戶根據業務類型,衡量是存儲數據IO和磁盤空間的代價和重新計算的代價,選擇代 價較小的一種策略。取代給中間結果進行持久化或建立檢查點,Spark會記住產生某些數據集的操作序列。因此,當一個節點出現故障時,Spark會根據存 儲信息重新構造數據集。他們認為這樣也不錯,因為其他節點將會幫助重建。

3、Spark對于數據處理能力和效率有哪些特色?

Spark提供了高的性能和大數據處理能力,使得用戶可以快速得到反饋體驗更好。另一類應用是做數據挖掘,因為Spark充分利用內存進行緩存,利用 DAG消除不必要的步驟,所以比較合適做迭代式的運算。而有相當一部分機器學習算法是通過多次迭代收斂的算法,所以適合用Spark來實現。我們把一些常 用的算法并行化用Spark實現,可以從R語言中方便地調用,降低了用戶進行數據挖掘的學習成本。

Spark配 有一個流數據處理模型,與Twitter的 Storm框架相比,Spark采用了一種有趣而且獨特的辦法。Storm基本上是像是放入獨立事務的管道,在其中事務會得到分布式的處理。相 反,Spark采用一個模型收集事務,然后在短時間內(我們假設是5秒)以批處理的方式處理事件。所收集的數據成為他們自己的RDD,然后使用Spark 應用程序中常用的一組進行處理。作者聲稱這種模式是在緩慢節點和故障情況下會更加穩健,而且5秒的時間間隔通常對于大多數應用已經足夠快了。這種方法也很 好地統一了流式處理與非流式處理部分。

隨著大數據相關技術和產業的逐漸成熟,單個組織內往往需要同時進行多種類型的大數據分析作業:傳統Hadoop MapReduce最為擅長的批量計算、各種機器學習算法為代表的迭代型計算、流式計算、社交網絡中常用的圖計算、SQL關系查詢、交互式即席查詢等。在 Spark出現前,要在一個組織內同時完成以上數種大數據分析任務,就不得不與多套獨立的系統打交道,一方面引入了不容小覷的運維復雜性,另一方面還免不 了要在多個系統間頻繁進行代價高昂的數據轉儲。

Spark是發源于美國加州大學伯克利分校AMPLab的集群計算平臺,它立足于內存計算,性能超過Hadoop百倍,從多迭代批量處理出發,兼收并蓄數 據倉庫、流處理和圖計算等多種計算范式,是罕見的全能選手。Spark當下已成為Apache基金會的頂級開源項目,擁有著龐大的社區支持(活躍開發者人 數已超過Hadoop MapReduce),技術也逐漸走向成熟。

1、spark由于啟用了內存分布數據集,充分利用了分布式內存技術使其運算效率在hadoop至少;使用Scala語言編寫;另外隨著hadoop 2.0的發布,Spark亦可直接運行在YARN上。
2、容錯特性:Spark 引進彈性分布式數據集(RDD) 。RDD 是分布在一組節點中的只讀對象集合。集合是彈性的,如果數據集一部分丟失,則可以對它們進行重建。重建部分數據集的過程依賴于容錯機制,該機制可以維護 “血統”(即允許基于數據衍生過程重建部分數據集的信息)。
3、很明顯采用內存計算的效率遠高于具有大量磁盤IO操作的Hadoop
4、迷你書,能在最短的時間內掌握盡可能多的內容,看起來不至于太累。

我們公司現在數據的處理主要是在hadoop上 但是也搭建了10臺的spark的集群
hadoop 可以使用比較廉價的PC機器 但是spark盡量還是使用內存配置比較高的 我們這用的是64G內存的
網上資料說盡量使用96G內存以上的 但是我們這沒那么好的機器做測試
相比較于hadoop 我們使用的spark覺得有幾下幾個優點
第一 spark基于內存計算,速度很明顯 。 10臺的SPARK的集群的速度可以和我們這hadoop集群的50臺的差不多 但是 hadoop 的集群內存大小不一 有8G的 有16G的
第二 spark是基于Scala 相比較hadoop基于java spark更適合數據挖掘 因為scala就是技術機器挖掘的
第三 hadoop 編程模式處理數據很死 只有map 和reduce 而spark編程模式更靈活
第四 據說 spark的算法比hadoop算法更厲害 這個我們這也不知道怎么看 只知道處理數據速度確實快了很多

1、Spark VS Hadoop有哪些異同點? Spark是基于map reduce算法實現的分布式計算,擁有Hadoop MapReduce所具有的優點;但不同于MapReduce的是Job中間輸出和結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更 好地適用于數據挖掘與機器學習等需要迭代的map reduce的算法。 2、Spark在容錯性方面是否比其他工具更有優越性? 現有的數據流系統對兩種應用的處理并不高效:一是迭代式算法,這在圖應用和機器學習領域很常見;二是交互式數據挖掘工具。這兩種情況下,將數據保存在內存 中能夠極大地提高性能。為了有效地實現容錯,RDD提供了一種高度受限的共享內存,即RDD是只讀的,并且只能通過其他RDD上的批量操作來創建。盡管如 此,RDD仍然足以表示很多類型的計算,包括MapReduce和專用的迭代編程模型(如Pregel)等。Spark實現的RDD在迭代計算方面比 Hadoop快二十多倍,同時還可以在5-7秒的延時內交互式地查詢1TB的數據集。 3、Spark對于數據處理能力和效率有哪些特色? 與Hadoop進行對比,結果如下:

(1)對于迭代式機器學習應用,Spark比Hadoop快20多倍。這種加速比是因為:數據存儲在內存中,同時Java對象緩存避免了反序列化操作(deserialization)。
(2)用戶編寫的應用程序執行結果很好。例如,Spark分析報表比Hadoop快40多倍。
(3)如果節點發生失效,通過重建那些丟失的RDD分區,Spark能夠實現快速恢復。
(4)Spark能夠在5-7s延時范圍內,交互式地查詢1TB大小的數據集。

1、Spark VS Hadoop有哪些異同點?
作為通用的并行處理框架,Spark具有類似Hadoop的一些優點,而且Spark采用了更好的內存管理,
在迭代計算上具有比Hadoop更高的效率,Spark還提供了更為廣泛的數據集操作類型,大大方便了
用戶的開發,checkpoint的應用使Spark具有很強容錯能力,眾多優越的性能和比Hadoop更廣泛
的適用面讓Spark的進一步發展值得期待。

2、Spark在容錯性方面是否比其他工具更有優越性?
在分布式數據集計算時通過checkpoint來實現容錯,而checkpoint
有兩種方式,一個是checkpoint data,一個是logging the updates。
用戶可以控制采用哪種方式來實現容錯。

3、Spark對于數據處理能力和效率有哪些特色?
由于Spark處理數據利用內存,因此它的速度是非常快的,
Spark Streaming:大大提高Spark流處理的能力和穩定性,
使用戶可以用同一套代碼進行大數據流處理和批量處理。

總結

以上是生活随笔為你收集整理的spark之2:原理介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。