顧名思義,從字面理解RDD就是 Resillient Distributed Dataset,即彈性分佈式數據集。mysql
它是Spark提供的核心抽象。sql
RDD在抽象上來說是一種抽象的分佈式的數據集。它是被分區的,每一個分區分佈在集羣中的不一樣的節點上。從而能夠讓數據進行並行的計算數組
它主要特色就是彈性和容錯性。分佈式
彈性:RDD的數據默認狀況下存放在內存中的,可是在內存資源不足時,Spark會自動將RDD數據寫入磁盤工具
容錯性:RDD能夠自動從節點失敗中恢復過來。即若是某個節點上的RDD partition,由於節點故障,致使數據丟了,那麼RDD會自動經過本身的數據來源從新計算該partition。oop
RDD來源:一般是Hadoop的HDFS,Hive 表等等;也能夠經過Linux的本地文件;應用程序中的數組;jdbc(mysql 等);也能夠是kafka、flume數據採集工具、中間件等轉化而來的RDD。中間件