SparkStreaming容错性

SparkStreaming实时流处理系统需要长时间接受并处理数据,对于SparkStreaming的容错性主要通过以下三种方式:


第一、利用Spark自身的容错设计、存储级别和RDD抽象设计能够处理集群中任何worker节点的故障。

第二、由于Spark运行的多种模式,其Driver端可能运行在Master节点或者在集群中的任意节点,让Driver端具备容错能力是一个很大挑战,但是由于SparkStreaming接收的数据是按照批处理形式进行存储和处理,这些批次数据的元数据可以通过执行检查点的方式定期写入可靠的存储中,在Driver端重启中恢复这些状态,即checkpoint机制。

第三、对于接收的数据存在于内存中存在丢失的风险,由于接收到的数据还存在于Executor的内存中,当Executor出现异常时会丢失这些数据,为了避免这种数据损失,在Spark1.2中引进了预写日志的形式(WriteAheadLogs)的形式。

你可能感兴趣的:(SparkStreaming容错性)