## RDD 容錯機制 Checkpoint
**持久化的局限**:
- 持久化 / 緩存可以把數據放在內存中,雖然是快速的,但是也是最不可靠的;也可以把數據放在磁盤上,也不是完全可靠的!例如磁盤會損壞等。
**問題解決**:
- `Checkpoint` 的產生就是為了更加可靠的數據持久化,在`Checkpoint`的時候一般把數據放在在 `HDFS` 上,這就天然的借助了 `HDFS` 天生的高容錯、高可靠來實現數據最大程度上的安全,實現了 `RDD` 的容錯和高可用。
**用法如下**:
```
SparkContext.setCheckpointDir("目錄") //HDFS的目錄
RDD.checkpoint
```
**總結:**
- 開發中如何保證數據的安全性性及讀取效率:可以對頻繁使用且重要的數據,先做緩存 / 持久化,再做 checkpint 操作。
**持久化和 Checkpoint 的區別:**
- 位置:Persist 和 Cache 只能保存在本地的磁盤和內存中 (或者堆外內存–實驗中) Checkpoint 可以保存數據到 HDFS 這類可靠的存儲上。
- 生命周期:Cache 和 Persist 的 RDD 會在程序結束后會被清除或者手動調用 unpersist 方法 Checkpoint 的 RDD 在程序結束后依然存在,不會被刪除。
- Introduction
- 快速上手
- Spark Shell
- 獨立應用程序
- 開始翻滾吧!
- RDD編程基礎
- 基礎介紹
- 外部數據集
- RDD 操作
- 轉換Transformations
- map與flatMap解析
- 動作Actions
- RDD持久化
- RDD容錯機制
- 傳遞函數到 Spark
- 使用鍵值對
- RDD依賴關系與DAG
- 共享變量
- Spark Streaming
- 一個快速的例子
- 基本概念
- 關聯
- 初始化StreamingContext
- 離散流
- 輸入DStreams
- DStream中的轉換
- DStream的輸出操作
- 緩存或持久化
- Checkpointing
- 部署應用程序
- 監控應用程序
- 性能調優
- 減少批數據的執行時間
- 設置正確的批容量
- 內存調優
- 容錯語義
- Spark SQL
- 概述
- SparkSQLvsHiveSQL
- 數據源
- RDDs
- parquet文件
- JSON數據集
- Hive表
- 數據源例子
- join操作
- 聚合操作
- 性能調優
- 其他
- Spark SQL數據類型
- 其它SQL接口
- 編寫語言集成(Language-Integrated)的相關查詢
- GraphX編程指南
- 開始
- 屬性圖
- 圖操作符
- Pregel API
- 圖構造者
- 部署
- 頂點和邊RDDs
- 圖算法
- 例子
- 更多文檔
- 提交應用程序
- 獨立運行Spark
- 在yarn上運行Spark
- Spark配置
- RDD 持久化