• spark-streaming对接kafka的两种方式


    spark-streaming对接kafka有两种方式:
    1.基于receiver的方式,属于高级API,简单但是效率低,容易丢失数据(可以设置WAL)。
    它的原理是:receiver从kafka拉取数据存储到executor的内存中,spark-streaming启动job处理数据。
    偏移量保存在zookeeper中。
     
    2.基于Direct的方式
    属于低级API,效率高。
    executor直接对接kafka的partition,触发action后,周期性地读取topic分区指定offset的数据,生成batch运算。
     
    优点:
    简言之,省去了receiver,降低资源消耗,提高性能。
    1.简化并行读写:Spark会创建和kafka partition数量一致的RDD partition,并且并行化从kafka中读取数据,所以在kafka的partition和rdd的partition之间,一一对映。
    2.高性能:direct没有receiver,不需要WAL写前日志,因为kafka中的副本就可以保证数据不丢失。
    3.降低资源,direct不需要receiver,因此申请的executor可以全部用于运算。
     
    缺点:
    1.开发复杂
    2.要spark自己维护offset

  • 相关阅读:
    华为平板暴力禁用wifi
    传输层与数据层架构一二谈
    内外网访问控制设计
    机房通信网设计
    list add元素覆盖之前元素问题思考
    IIS8无法调用Oracle.DataAccess .dll问题
    线程令牌
    Socket解决粘包问题2
    Socket解决粘包问题1
    Socket异步通信学习三
  • 原文地址:https://www.cnblogs.com/lucas-zhao/p/12144448.html
Copyright © 2020-2023  润新知