您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么解析spark的寬窄依賴和持久化,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
cache底層調用的是persisit ,默認參數是StorageLevel.MEMORY_ONLY cache 用完最好手動干掉
是否使用磁盤 是否使用內存 不管 反序列化 副本
選擇默認第一種MEMORY_ONLY 內存不夠選怎序列化 磁盤最好別選擇 不要用這個副本形式耗內存 緩存選擇: Spark’s storage levels are meant to provide different trade-offs (權衡)between memory usage and CPU efficiency.We recommend going through the following process to select one: 選擇方式 優先級從上到下 優先選擇第一個MEMORY_ONLY ,內存實在不夠就序列化 If your RDDs fit comfortably with the default storage level (MEMORY_ONLY), leave them that way 默認可以搞定就用默認的. This is the most CPU-efficient option, allowing operations on the RDDs to run as fast as possible. 不要選擇java的序列化 If not, try using MEMORY_ONLY_SER and selecting a fast serialization library to make the objects much more space-efficient 空間很好, but still reasonably fast to access. (Java and Scala) Don’t spill to disk 不要放到磁盤 unless the functions that computed your datasets are expensive, or they filter a large amount of the data. Otherwise, recomputing a partition may be as fast as reading it from disk.
寬依賴用shufer 寬窄依賴容錯程度不一樣 一個shuffer產生兩個stage,兩個產生三個stage等等 Lineage 血緣關系 用于容錯很多都是記錄的 textfile =》 xx => yy 描述的是一個RDD如何從父RDD過來的 RDD作用一個函數就是對RDD里面的分區作用一個函數 丟失了根據父RDD重新算一下 dependence 寬依賴:一個父RDD的partition至多被子RDD的某個partition使用一次 沒shuffer pipline 丟一個就直接拿出來計算就可以 窄依賴:一個父RDD的parttiton會被子RDD的partitio使用多次 有shuffer 寬依賴掛掉了要從父RDD全部計算 有的時候解決數據傾斜需要shuffer 他們容錯程度不一樣的 有shuffer就會生成stage 總結:老子被兒子用幾次,多個孩子(寬)或單個孩子(窄)
driver 就是main方法 中創建sparkcontext action 產生job ,shuffer 產生stage ,stage 里是task
上述內容就是怎么解析spark的寬窄依賴和持久化,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。