在编写Spark Streaming 程序的时候,往往需要我们自行设置checkpoint, 那么它要如何设置,作用又是什么呢?
其实, checkpoint的目的是保证长时间运行的任务在意外挂掉之后能够拉起的时候不丢失数据。checkpoint中包含两种数据:
- metadata
- data
下面描述的主要是metadata的checkpoint操作。
如何做呢?
要对metadata进行checkpoint,首先要有一个可靠的文件系统保证数据的安全性。因此,我们很容易想到使用HDFS来完成数据的存储。
spark中是支持HDFS来进行checkpoint的,通过代码streamingContext.checkPoint(hdfsDir)
来执行具体的存储路径。