Spark Streaming之容错性

为了保证系统的高容错性,Spark Streaming期初考虑到如下情况:

1:利用spark本身的容错设计,存储级别(MEMORY_AND_DISK_2)和RDD抽象设计能够处理集群中任何Worker节点的故障;

2:由于spark运行多种运行模式,器Driver端可能运行在Master节点或者在集群中的任意节点上,这样让Driver端具备容错能力是一个很大的挑战,但是由于SparkStreaming接收的数据是按照批进行存储和处理,这些批次数据的元数据可以通过执行检查点的方式定期写入可靠的存储中,在Driver端重新启动中恢复这些状态;

spark丢失数据的情况:

1:Kafka或者flume等数据持续发数据,由于接收到的数据还只缓存在Executor的内存中,尚未及时被处理,当Executor出现异常是会丢失内存中的数据;

2:如果集群处于独立运行模式或YARN运行模式或者Mesos模式,当Driver端失败时该Driver端所管理的Executor及内存中数据将终止,即使Driver端重新启动这些缓存的数据也不能被恢复;

为了避免以上两种情况,从spark1.2版本起,已经预写日志功能;

猜你喜欢

转载自blog.csdn.net/wql_zero/article/details/86102347
今日推荐