解析RDD在Spark中的地位

2021-09-09 05:35:19 字數 1208 閱讀 1392

1.spark的核心概念是rdd (resilient distributed dataset),指的是乙個 唯讀的,可分割槽的分布式資料集,這個資料集的全部或部分可以快取在記憶體中,在多次計算間重用。

2.rdd在抽象上來說是一種元素集合,包含了資料。它是被分割槽的,分為多個分割槽,每個分割槽分布在集群中的不同worker節點上,從而讓rdd中的資料可以被並行操作。(分布式資料集)

3.rdd通常通過hadoop上的檔案,即hdfs檔案或者hive表,來進行建立;有時也可以通過rdd的本地建立轉換而來。

4.傳統的mapreduce雖然具有自動容錯、平衡負載和可拓展性的優點,但是其最大缺點是採用非迴圈式的資料流模型,使得在迭代計算式要進行大量的磁碟io操作。rdd正是解決這一缺點的抽象方法。rdd最重要的特性就是,提供了容錯性,可以自動從節點失敗中恢復過來。即如果某個節點上的rdd partition,因為節點故障,導致資料丟了,那麼rdd會自動通過自己的資料**重新計算該partition。這一切對使用者是透明的。rdd的lineage特性。

5.rdd的資料預設情況下存放在記憶體中的,但是在記憶體資源不足時,spark會自動將rdd資料寫入磁碟。(彈性)

rdd在spark中的地位和作用

1)為什麼會有spark?因為傳統的平行計算模型無法有效的解決迭代計算(iterative)和互動式計算(interactive);而spark的使命便是解決這兩個問題,這也是他存在的價值和理由。

2)spark如何解決迭代計算?其主要實現思想就是rdd,把所有計算的資料儲存在分布式的記憶體中。迭代計算通常情況下都是對同乙個資料集做反覆的迭代計算,資料在記憶體中將大大提公升io操作。這也是spark涉及的核心:記憶體計算。

3)spark如何實現互動式計算?因為spark是用scala語言實現的,spark和scala能夠緊密的整合,所以spark可以完美的運用scala的直譯器,使得其中的scala可以向操作本地集合物件一樣輕鬆操作分布式資料集。

4)spark和rdd的關係?可以理解為:rdd是一種具有容錯性基於記憶體的集群計算抽象方法,spark則是這個抽象方法的實現。

結語

如果有對大資料感興趣的小夥伴或者是從事大資料的老司機可以**:

658558542

最後祝福所有遇到瓶頸的大資料程式設計師們突破自己,祝福大家在往後的工作與面試中一切順利。

Spark RDD在Spark中的地位和作用如何

一 為什麼會有spark?因為傳統的平行計算模型無法有效的解決迭代計算 iterative 和互動式計算 interactive 而spark的使命便是解決這兩個問題,這也是他存在的價值和理由.二 spark如何解決迭代計算?其主要實現思想就是rdd,把所有計算的資料儲存在分布式的記憶體中.迭代計算...

對spark中RDD的理解

update at 2016.1.25 rdd作者的 鏈結 的理解 spark要解決的問題 1 有些資料要多次讀寫,磁碟速度很慢 2 沒有互動的介面,不能看到中間結果 適用的應用 1 機器學習 多個迭代次運算,逼近 優化問題 是不是三維重建中優化也可以用到這個 2 計算結果還要用的 pagerank...

spark中建立RDD的方式

spark中建立rdd的幾種方式 1 使用程式中的集合建立rdd 一般用於測試 2 使用本地檔案系統建立rdd 一般用於資料量大的檔案的測試 3 基於hdfs建立rdd 生產環境最常用的rdd建立方式 4 使用s3建立rdd 5 基於資料流建立rdd packagecom.dt.spark impo...