Spark精华问答 | 谈谈spark中的宽窄依赖
總的來說,Spark采用更先進的架構,使得靈活性、易用性、性能等方面都比Hadoop更有優勢,有取代Hadoop的趨勢,但其穩定性有待進一步提高。我總結,具體表現在如下幾個方面。
1
Q:Spark RDD是什么?
A:RDD是Spark的基本抽象,是一個彈性分布式數據集,代表著不可變的,分區(partition)的集合,能夠進行并行計算。也即是說:
它是一系列的分片、比如說128M一片,類似于Hadoop的split;
在每個分片上都有一個函數去執行/迭代/計算它
它也是一系列的依賴,比如RDD1轉換為RDD2,RDD2轉換為RDD3,那么RDD2依賴于RDD1,RDD3依賴于RDD2。
對于一個Key-Value形式的RDD,可以指定一個partitioner,告訴它如何分片,常用的有hash、range
可選擇指定分區最佳計算位置
Q:RDD的三大Operations
A:Transformation?
從原有的一個RDD進行操作創建一個新的RDD,通常是一個lazy過程,例如map(func) 、filter(func),直到有Action算子執行的時候
Action?
返回給驅動program一個值,或者將計算出來的結果集導出到存儲系統中,例如count() reduce(func)
Persist?
將數據存儲在內存中,或者存儲在硬盤中?
例如:cache() persist() unpersist()?
合理使用persist()和cache()持久化操作能大大提高spark性能,但是其調用是有原則的,必須在transformation或者textFile后面直接調用persist()或cache(),如果先創建的RDD,然后再起一行調用這兩個方法,則會報錯
3Q:Spark和Hadoop的操作模型區別
A:Hadoop:只提供了Map和Reduce兩種操作所有的作業都得轉換成Map和Reduce的操作。
Spark:提供很多種的數據集操作類型比如Transformations 包括map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues,sort,partionBy等多種操作類型,還提供actions操作包括Count,collect, reduce, lookup, save等多種。這些多種多樣的數據集操作類型,給開發上層應用的用戶提供了方便。
Q:spark RDD有哪些特性?
A:1.A list of partitions:一個分區列表,RDD中的數據都存儲在一個分區列表中
2.A function for computing each split:作用在每一個分區中的函數
3.A list of dependencies on other RDDs:一個RDD依賴于其他多個RDD,這個點很重要,RDD的容錯機制就是依據這個特性而來的
4.Optionally,a Partitioner for key-value RDDs(eg:to say that the RDD is hash-partitioned):可選的,針對于kv類型的RDD才有這個特性,作用是決定了數據的來源以及數據處理后的去向
5.可選項,數據本地性,數據位置最優
5
Q:談談spark中的寬窄依賴
A:RDD和它的父RDD的關系有兩種類型:窄依賴和寬依賴
寬依賴:指的是多個子RDD的Partition會依賴同一個父RDD的Partition,關系是一對多,父RDD的一個分區的數據去到子RDD的不同分區里面,會有shuffle的產生
窄依賴:指的是每一個父RDD的Partition最多被子RDD的一個partition使用,是一對一的,也就是父RDD的一個分區去到了子RDD的一個分區中,這個過程沒有shuffle產生
區分的標準就是看父RDD的一個分區的數據的流向,要是流向一個partition的話就是窄依賴,否則就是寬依賴
小伙伴們沖鴨,后臺留言區等著你!
關于Spark,今天你學到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風里雨里留言區里等你~
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
推薦閱讀:
屢試不爽的互聯網架構三大馬車!
抖音微博等短視頻千萬級高可用、高并發架構如何設計?
20大5G關鍵技術
Fast.ai:從零開始學深度學習 | 資源帖
10個簡單小竅門帶你提高Python數據分析速度(附代碼)
程序員爬取 3 萬條評論,《長安十二時辰》槽點大揭秘!
暗網竟成比特幣最大用戶? 上半年5.15億美元被用于非法活動
總結
以上是生活随笔為你收集整理的Spark精华问答 | 谈谈spark中的宽窄依赖的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: boost::contract模块实现s
- 下一篇: boost::contract模块实现c