您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何進行大數據Spark中的核心RDD特征分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
RDD特征概要總結:
a、RDD是Spark提供的核心抽象,全稱為Resillient Distributed Dataset,即彈性分布式數據集。
b、RDD在抽象上來說是一種元素集合,包含了數據。它是被分區的,分為多個分區,每個分區分布在集群中的不同節點上,從而讓RDD中的數據可以被并行操作。
c、RDD通常通過Hadoop上的文件,即HDFS文件或者Hive表,來進行創建;有時也可以通過應用程序中的集合來創建。
d、RDD最重要的特性就是,提供了容錯性,可以自動從節點失敗中恢復過來。即如果某個節點上的RDD partition,因為節點故障,導致數據丟了,那么RDD會自動通過自己的數據來源重新計算該partition。這一切對使用者是透明的。
e、RDD的數據默認情況下存放在內存中的,但是在內存資源不足時,Spark會自動將RDD數據寫入磁盤。
下面我們一起來對其關鍵特征進行詳細分析
圖1-RDD分布式特征
分析:
RDD(Resilient Distributed Datasets)彈性分布式數據集,是分布式內存的一個抽象概念。我們可以抽象的代表對應一個HDFS上的文件,但是他實際上是被分區的,分為多個分區撒落在Spark集群中的不同節點上。比如現在我們的一個RDD有40萬條數據,并分為4個partition,這4個分區數據分別存儲在集群中的節點1、2、3、4中,而每個partition分到10萬條數據。如圖1所示,這樣的一個RDD將數據分布式撒落在集群的一批節點上,每個節點只是存儲RDD的部分partition,這就是RDD的分布式結構模型。
圖2-RDD彈性式特征
分析:
RDD的彈性特征說明,當RDD的每個partition數據都存放到Spark集群節點上時候,默認是都存放在內存中的,但是如果內存放不下這么多的數據時,我們該怎么辦呢?這時候RDD的彈性特征就表現出來了。如上圖2所示,在節點3內存中最多只能存儲6萬數據,結果我們需要存放一個partition數據為10萬,那么這時就得把partition中的剩余4萬數據寫入到磁盤上進行保存了。而這種存儲的分配針對用戶是透明的,我們不用管他怎么存儲,雖然這種存儲機制是有配置參數提供我們選擇的,后續深入講解時候會介紹到如何選擇存儲策略,這里就不加深難度了,所以,RDD的這種自動進行內存和磁盤之間權衡和卻換的機制,就是RDD的彈性特征所在。
圖3-RDD容錯性特征
分析:
最后我們來看看RDD被分散的存放在集群的各個節點上了,那假如某個節點運行時候出現問題,數據該怎么辦呢?這里Spark的RDD支持了強大的容錯機制,如上圖3,在運行節點n時候出現了問題,這時候就需要重新獲取數據進行計算,那RDD將啟動容錯機制,嘗試尋找上游依賴數據源節點3來重新獲取數據進行計算,這里深入分析將會提出另外一個概念來了,那就是DAG(有向無環圖)、進一步了解RDD的依賴關系,與底層邏輯關系了。
關于如何進行大數據Spark中的核心RDD特征分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。