SparkStreaming使用checkpoint存在的问题及解决方案
sparkstreaming关于偏移量的管理 在 Direct DStream初始化的时候,需要指定一个包含每个topic的每个分区的offset用于让Direct DStream从指定位置读取数据。 offsets就是步骤4中所保存的offsets位置 读取并处理消息 处理完之后存储结果数据 用虚线圈存储和提交offset只是简单强调用户可能会执行一系列操作来满足他们更加严格的语义要求。这包括幂等操作和通过原子操作的方式存储offset。 最后,将offsets保存在外部持久化数据库如 HBase, Kafka, HDFS, and ZooKeeper中 SparkStreaming使用checkpoint存在的问题 SparkStreaming在处理kafka中的数据时,存在一个kafka offset的管理问题: 官方的解决方案是checkpoint: checkpoint是对sparkstreaming运行过程中的元数据和 每次rdds的数据状态保存到一个持久化系统中,当然这里面也包含了offset,一般是HDFS,S3,如果程序挂了,或者集群挂了,下次启动仍然能够从checkpoint中恢复,从而做到生产环境的7*24高可用。如果checkpoint存储做hdfs中,会带来小文件的问题。 但是checkpoint的最大的弊端在于,一旦你的流式程序代码或配置改变了