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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

RDD模型

發布時間:2023/12/9 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RDD模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spark是Berkeley大學AMP(stands for?Algorithms, Machines, and People)實驗室開發的一個項目。它是一個基于RDD(Resilient Distributed Datasets)模型,能夠支持計算MapReduce模式的作業,主要用于迭代計算和交互式數據計算等中間結果可重用的分布式計算框架。Spark 將數據緩存在內存中從而減少數據的訪問延遲。

1. RDD

RDD,即可伸縮的分布式數據集合,管理數據緩存和數據重用,采用分析日志方式支持數據容錯,提供了粗粒度的事務處理接口(map,filter,join)。RDD 對數據記錄進行分區存儲,本身是只讀的。RDD 的數據來源:1) 穩定的存儲介質;2) 其它的RDD存儲的數據。RDD對程序員開發了兩種操作:數據存儲和分區。RDD本身不做物理儲存,通過保存足夠的信息去實際的儲存中計算出RDD,可以將RDD視為松散的虛擬內存[1]。

2. RDD v.s. DSM

RDD相比于DSM(共享內存)有如下的不同

AspectRDDSDSM
ReadsCoarse- or fine-grainedFine-grained
WritesCoarese-grainedFine-grained
ConsistencyTrivial (immutable)Up to app / runtime
Fault recoveryFrine-grained and low-overhead using lineageRequires checkpoints and program rollback
Straggler mitigationPossible using backup tasksDifficult
Work placementAutomatic based on data localityUp to app
Behavior if not enough RAMSimilar to existing data flow systemsPoor perfermance?

3. 共享變量[2]

當Spark并發運行一個函數時,它是以多個的task,在不同的結點上運行,它傳遞每一個變量的一個拷貝,到每一個獨立task使用到的函數中,因此這些變量并非共享的。然而有時候,我們需要在任務中能夠被共享的變量,或者在任務與驅動程序之間共享。Spark支持兩種類型的共享變量:

? ???廣播變量: ??? ?可以在內存的所有結點中被訪問,用于緩存變量(只讀)

? ???累加器: ? ? ? ? 只能用來做加法的變量,例如計數和求和

4. Spark編程模型

Spark 使用 Scala 語言編寫,分布式事務管理使用Mesos,并支持HDFS文件系統,是一個輕量級的框架。其0.5版有1,4000行代碼。

開發者編寫 Driver 控制集群中的 worker。一個Driver定義了一個或多個RDD,并能夠記錄RDD之間的進化關系。worker是一個長進行,將存儲了RDD分區存儲在內存中執行操作。RDD數據集上定義了兩種操作[3]:action 和 transformation。action,即在數據集上執行計算,并向driver返回一個值;transformation,即從已有數據集創建新的數據集。

轉載于:https://www.cnblogs.com/valder/archive/2012/08/27/2658090.html

總結

以上是生活随笔為你收集整理的RDD模型的全部內容,希望文章能夠幫你解決所遇到的問題。

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