streaming集群如何做容灾处理?
spark streaming集群做容灾处理spark streaming有两种容错机制:spark自带的checkpoint,使用kafka direct自行维护offset。
第一种方法中,checkpoint是spark streaming自带的一种检查点机制,可以通过一些特殊配置把输入数据和计算过程中的数据存储在可靠的文件系统中(比如hdfs或s3)。
它可以保存计算过程中的状态,在发生失败时可以控制回溯到什么程度,而不用重新进行计算。驱动器容错,在驱动器崩溃重启后,控制从什么位置继续读取数据。checkpoint有三种应用方法元数据信息,主要包括:streaming应用程序的配置计算过程中一系列Dstream操作没有完成的批处理,在运行队列中的批处理但是没有完成;消费数据的偏移量;编译后的执行程序(jar文件)序列化后的二进制文件。第二种方法基于接收者的方式,采用push方式,由kafka的topic将数据推向spark,使用API: 使用的是kafka高级消费者API效果: kafka将数据推到spark执行节点中并储存起来,然后由Spark Streaming启动作业来处理这些程序。
效果上,这种方式不是使用接收器接收,而是saprk每次拉取数据先去kafka中获取上一次拉取的偏移量。根据偏移量获取数据后,再进行处理。笔者推荐第二种处理方法,自行维护offset要比spark自带的checkpoint更好一些,更加灵活、安全,容灾处理的能力也会更强。Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有