Spark RDD在Spark中的地位和作用如何?
Spark RDD的核心原理
1、Spark的核心概念是RDD (resilientdistributed dataset),指的是一個只讀的,可分割槽的分散式資料集,這個資料集的全部或部分可以快取在記憶體中,在多次計算間重用。
2、RDD在抽象上來說是一種元素集合,包含了資料。它是被分割槽的,分為多個分割槽,每個分割槽分佈在叢集中的不同Work節點上,從而讓RDD中的資料可以被並行操作。(分散式資料集)
3、RDD通常透過Hadoop上的檔案,即HDFS檔案或者Hive表,來進行建立;有時也可以透過RDD的本地建立轉換而來。
4、傳統的MapReduce雖然具有自動容錯、平衡負載和可擴充性的優點,但是其最大缺點是採用非迴圈式的資料流模型,使得在迭代計算式要進行大量的磁碟IO操作。RDD正是解決這一缺點的抽象方法。
RDD最重要的特性就是,提供了容錯性,可以自動從節點失敗中恢復過來。即如果某個節點上的RDD partition,因為節點故障,導致資料丟了,那麼RDD會自動透過自己的資料來源重新計算該partition。這一切對使用者是透明的。RDD的lineage特性。
5、RDD的資料預設情況下存放在記憶體中的,但是在記憶體資源不足時,Spark會自動將RDD資料寫入磁碟。(彈性)
一、為什麼會有Spark?
因為傳統的平行計算模型無法有效的解決迭代計算(iterative)和互動式計算(interactive)而Spark的使命便是解決這兩個問題,這也是他存在的價值和理由.
二、Spark如何解決迭代計算?
其主要實現思想就是RDD,把所有計算的資料儲存在分散式的記憶體中.迭代計算通常情況下都是對同一個資料集做反覆的迭代計算,資料在記憶體中將大大提升IO操作.這也是Spark涉及的核心:記憶體計算.
三、Spark如何實現互動式計算?
因為Spark是用scala語言實現的,Spark和scala能夠緊密的整合,所以Spark可以完美的運用scala的直譯器,使得其中的scala可以向操作本地集合物件一樣輕鬆操作分散式資料集.
四、Spark和RDD的關係?
可以理解為:RDD是一種具有容錯性基於記憶體的叢集計算抽象方法,Spark則是這個抽象方法的實現.
想要了解更多Java相關的知識,歡迎關注我喲!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2771581/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spark開發-spark執行原理和RDDSpark
- Spark RDD APISparkAPI
- spark-RDDSpark
- 大白話講解Spark中的RDDSpark
- Spark 的核心概念 RDDSpark
- Spark RDD中Runtime流程解析Spark
- Spark - [03] RDD概述Spark
- Spark RDD的預設分割槽數:(spark 2.1.0)Spark
- Spark RDD使用詳解--RDD原理Spark
- Spark SQL中的RDD與DataFrame轉換SparkSQL
- Spark Basic RDD 操作示例Spark
- Spark(十三) Spark效能調優之RDD持久化Spark持久化
- SparkSQL /DataFrame /Spark RDD誰快?SparkSQL
- Spark RDD 特徵及其依賴Spark特徵
- spark學習筆記--RDDSpark筆記
- Calcite 使用原生的RDD 處理SparkSpark
- Spark學習(二)——RDD基礎Spark
- 【大資料】Spark RDD基礎大資料Spark
- spark RDD,reduceByKey vs groupByKeySpark
- spark常用RDD介紹及DemoSpark
- 關於Spark中RDD的設計的一些分析Spark
- Spark從入門到放棄---RDDSpark
- 快取Apache Spark RDD - 效能調優快取ApacheSpark
- RDD程式設計 上(Spark自學三)程式設計Spark
- RDD程式設計 下(Spark自學四)程式設計Spark
- Spark開發-RDD介面程式設計Spark程式設計
- spark: RDD與DataFrame之間的相互轉換Spark
- Spark筆記:複雜RDD的API的理解(下)Spark筆記API
- 大資料學習—Spark核心概念RDD大資料Spark
- Spark----RDD運算元分類 DAGSpark
- Spark開發-RDD分割槽重新劃分Spark
- spark學習筆記--RDD鍵對操作Spark筆記
- 【Spark篇】---Spark中Shuffle機制,SparkShuffle和SortShuffleSpark
- Spark on Yarn 和Spark on MesosSparkYarn
- Spark運算元:統計RDD分割槽中的元素及數量Spark
- Spark RDD運算元(八)mapPartitions, mapPartitionsWithIndexSparkAPPIndex
- 深入原始碼理解Spark RDD的資料分割槽原理原始碼Spark
- 【Spark篇】---Spark中Shuffle檔案的定址Spark