千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Spark-Streaming的基本原理以及预写日志机制和checkpoint(三)

Spark-Streaming的基本原理以及预写日志机制和checkpoint(三)

来源:千锋教育
发布人:qyf
时间: 2022-08-31 16:10:29 1661933429

Spark-Streaming的基本原理

  合适启用checkpoint机制

  1.使用了有状态的transformation操作—比如updateStateByKey,或者reduceByKeyAndWindow操作被使用了,

  那么checkpoint目录要求是必须提供的,也就必须开启checkpoint机制,从而进行周期性的RDD checkpoint

  2.要保证可以从Driver失败中进行恢复—元数据checkpoint需要启用,来进行这种情况的恢复,

  要注意的是,并不是说所有的Spark-Streaming应用程序,都要启用checkpoint机制,如果不强制要求从Driver

  失败中自动进行恢复,有没有使用有状态的transformation操作,那么就不需要启用checkpoint,事实上

  这么做反而是用利于提升性能的。

  启动预写日志机制

  预写日志机制,简写为WAL,全称为Write Ahead Log,从Spark 1.2版本开始,就引入了基于容错的文件系统的WAL机制,如果启用该机制,Receiver接收到的所有数据都会被写入配置的checkpoint目录中的预写日志这种机制可以让driver在恢复的时候,避免数据丢失,并且可以确保整个实时计算过程中,零数据丢失

  要配置该机制,首先要调用StreamingContext的checkpoint()方法设置一个checkpoint目录,然后需要将spark.streaming.receiver.writeAheadLog.enable参数设置为true

  然而这种极强的可靠性机制,会导致Receiver的吞吐量大幅度下降,因为单位时间内有相当一部分时间需要将数据写入预写日志,如果又希望开启预写日志机制,确保数据零损失,又不希望影响系统的吞吐量,那么可以创建多个输入DStream启动多个Reciver,然后将这些receiver接收到的数据使用ssc.union()方法将这些dstream中的数据进行合并

  此外在启用了预写日志机制之后,推荐将复制持久化机制禁用掉,因为所有数据已经保存在容错的文件系统中了,不需要再用复制机制进行持久化,保存一份副本了,只要将输入的DStream的持久化机制设置一下即可。

  更多关于“云计算培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT