RDD是spark的核心,也是整個spark的架構基礎,RDD是彈性分佈式集合(Resilient Distributed Datasets)的簡稱,
是分佈式只讀且已分區集合對象。這些集合是彈性的,若是數據集一部分丟失,則能夠對它們進行重建。具備自動容錯、位置感知調度和可伸縮性,而容錯性是最難實現的,大多數分佈式數據集的
容錯性有兩種方式:數據檢查點和記錄數據的更新。對於大規模數據分析系統,數據檢查點操做成本高,主要緣由是大規模數據在服務器之間的傳輸帶來的各方面的問題,相比記錄數據的更新,RDD也只支持粗粒度的轉換,也就是記錄如何從其餘RDD轉換而來(即lineage),以便恢復丟失的分區。
簡而言之,特性以下:
1. 數據結構不可變
2. 支持跨集羣的分佈式數據操做
3. 可對數據記錄按key進行分區
4. 提供了粗粒度的轉換操做
5. 數據存儲在內存中,保證了低延遲性