请问 sparkstreaming 对接 kafka 的两种方式有什么大的区别作用呢?

问答 ling775000 ⋅ 于 2018-03-01 15:14:47 ⋅ 最后回复由 青牛 2018-03-01 21:11:32 ⋅ 2896 阅读

百度看得云里雾里的,能简单的解释下吗?

成为第一个点赞的人吧 :bowtie:
回复数量: 3
  • 青牛 国内首批大数据从业者,就职于金山,担任大数据团队核心研发工程师
    2018-03-01 15:56:33

    一个是Subscribe,一个是Assign。Assign可以指定revicer接受kafka的那些paritition。Subscribe会自动balance。两者都可以指定消费的offset和使用auto.offset.reset

  • ling775000
    2018-03-01 16:03:37

    @青牛 为啥我百度看到的是Receiver与Direct的方式?

  • 青牛 国内首批大数据从业者,就职于金山,担任大数据团队核心研发工程师
    2018-03-01 21:11:32

    @ling775000 哦,你是指这个啊,Receiver是老的方式,在新的spark中已经被Direct代替了
    Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的brokers
    Receiver需要把数据写到hdfs上进行容错,Direct容错使用的是kafka的副本
    Receiver无法保证数据被处理一次,direct会追踪最新的offset并保存到checkpoint中可以保证消费一次
    direct相比Receiver性能更高且有事务性保证

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter