Spark + Kafka 集成 指南

来源:互联网 发布:盘古网络唐山icp备 编辑:程序博客网 时间:2024/05/01 16:19

最近在考虑Spark在消费Kafka 分区数据的过程中究竟反生了什么? 因为比较疑惑现有系统架构会不会遭遇这方面的瓶颈,遂决定去搞一把,一探究竟.

参考:Spark  API章节 http://spark.apache.org/docs/1.5.0/streaming-kafka-integration.html   及 http://spark.apache.org/docs/1.5.0/configuration.html 

关于Kafka做一下简短的总结,Kafka可参考附件1:

  • 多个TOPIC分布在多个Broker中
  • 每个TOPIC的数据以分区的方式分布在多个Broker中
  • 一个分区同时只能被一个Consumer消费
  • 同一个TOPIC允许被不同的Group重复消费,Group内不允许重复消费

Spark接入Kafka数据的两种方式Receiver-based && Direct Approach. 各有特点.

Receiver-based,基于接收器的kafka数据消费,

  • API示例如下

val kafkaStream = KafkaUtils.createStream(streamingContext, [ZK quorum], [consumer group id], [per-topic number of Kafka partitions to consume])

  • 概述
    • KAFKA高阶API实现,因而编程实现简单.
    • 接收器接负责收数据存储到Sparnk 执行器,可能是内存或者磁盘
    • 默认配置下潜在的数据丢失风险,可以启用客户端日志特性,该操作将对消费的数据进行以日志文件形式进行存储进而避免依赖于ZK的数据消费异常
  • 点晴
    • 基于接收器的Kafka数据消费Kafka分区与RDD分区之间没有关联,进而参数[per-topic number of Kafka partitions to consume] ,实际上只是增加了接收器接收数据的并行度而并没有提高Saprk 处理数据的并行度.
    • 可以使用多个Reciver来并行消费不同Topic 及不同Group下的数据
    • 启用日志特性需要指定数据的存储级别,KafkaUtils.createStream(..., StorageLevel.MEMORY_AND_DISK_SER)

Direct Approach,直接获取数据

  • 概述
    • 一种端对端的数据消费策略,一个Kafka分区对应一个RDD分区.
    • 定期的快速扫描Kafka中每个Partion 及Topic 的最新Offsets以确定当前批次的数据偏移范围,该过程使用低阶API来实现
  • 优势
    • 简化的并行度,基于DirectStream SparkStream将创建多个RDD分区去消费Kafka分区数据
    • 效率上的提升,客户端Offsets不再依赖于ZK存储的Offsets而改由Spark checkPoint 进行跟踪,每次取数据直接使用偏移获取
    • 一次消费保证, Offsets 不在依赖于ZK ,排除了ZK Offsets可能不同步的情况,消除了 Spark和Kafka之间的不一致性,意味着数据的消费由Spark掌控,只要数据存在于Kafka即可.
  • 弊端
    • offsets由Spark在checkpoint中维护不自动更新ZK中的Offsets,导致一些依赖于ZKOffsets监控的工具失效.
  • 配置项目
    • auto.offset.reset   消费者首次连接时offsets的生成策略,largest/smallest,分别代表当前最新消息位置/最早消息位置.
    • spark.streaming.kafka.*  其它可配置的参数
    • spark.streaming.kafka.maxRetries 最大重试次数
    • spark.streaming.kafka.maxRatePerPartition 每秒中消费的最大条数 ,该参数对于从数据积压中进行恢复有显著调节作用.

附件1:kafka 知识图解


2 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 19岁的宫颈糜烂怎么办 发面酸了没有碱怎么办 面发时间长酸了怎么办 丽珠兰打完红肿怎么办 美的冰柜冷藏室结冰怎么办 胃下午和晚上痛怎么办 二胡弓毛粗拉外弦触到里弦怎么办 电视成黑白的了怎么办 城市居民无钱入社保医保怎么办 老婆说离婚又找不到怎么办 爱一个人太累了怎么办 车凹陷漏底漆了怎么办 燕子窝掉下来了怎么办 文科没考上一本怎么办 学校午休小学孩子吵闹怎么办 老鼠死在空调里怎么办 公务员老公四十岁想辞职怎么办 打胎5次又怀孕怎么办 墙纸颜色太淡了怎么办 皮子腺囊肿有点疼痛怎么办 地板颜色选浅了怎么办 地板买的太暗了怎么办 木地板贴好后发现颜色不好看怎么办 鞋上鞋扣老是开怎么办 虚拟机的win10蓝屏重启怎么办 fs免拆模板专利怎么办 新买的床咯吱响怎么办 实木床一动就响怎么办 cad图纸是斜的怎么办 老房子土墙腻子老掉怎么办 生完孩子子宫大怎么办 刚开的店没人怎么办 刚开业的店没人怎么办 美容店没人进店怎么办 新店开业招不到营业员怎么办 无意开通了花呗怎么办? 花呗灰色用不了怎么办 花呗逾期用不了怎么办 店铺花呗关闭了怎么办 花呗无法使用了怎么办 借呗自动关闭了怎么办