顧名思義,從字面理解RDD就是 Resillient Distributed Dataset,即彈性分布式數據集。
它是Spark提供的核心抽象。
RDD在抽象上來講是一種抽象的分布式的數據集。它是被分區的,每個分區分布在集群中的不同的節點上。從而可以讓數據進行並行的計算
它主要特點就是彈性和容錯性。
彈性:RDD的數據默認情況下存放在內存中的,但是在內存資源不足時,Spark會自動將RDD數據寫入磁盤
容錯性:RDD可以自動從節點失敗中恢復過來。即如果某個節點上的RDD partition,因為節點故障,導致數據丟了,那么RDD會自動通過自己的數據來源重新計算該partition。
RDD來源:通常是Hadoop的HDFS,Hive 表等等;也可以通過Linux的本地文件;應用程序中的數組;jdbc(mysql 等);也可以是kafka、flume數據采集工具、中間件等轉化而來的RDD。