DIS Spark Streaming Plugins 常见客户问题

举报
gaozhiliang 发表于 2020/07/23 20:03:03 2020/07/23
【摘要】 一、原理当前 Spark Streaming 插件使用的是类似于直接读取 Kafka 的方式来集成 DIS:Driver 使用subscribe方式订阅通道,然后根据 Executor 数量将通道分区分配给 Executor;Executor 使用assign方式消费通道数据并提交 Checkpoint二、FAQ2.1 如何控制 Spark Streaming 从 DIS 的消费速度?有关消...

一、原理

当前 Spark Streaming 插件使用的是类似于直接读取 Kafka 的方式来集成 DIS:

Driver 使用subscribe方式订阅通道,然后根据 Executor 数量将通道分区分配给 Executor;

Executor 使用assign方式消费通道数据并提交 Checkpoint

二、FAQ

2.1 如何控制 Spark Streaming 从 DIS 的消费速度?

有关消费速度控制的三个变量:

spark.streaming.backpressure.enabled

开启后spark自动根据系统负载选择最优消费速率,默认值:false

spark.streaming.backpressure.initialRate

在spark.streaming.backpressure.enabled开启的情况下,限制第一次批处理应该消费的数据,因为程序冷启动队列里面有大量积压,防止第一次全部读取,造成系统阻塞,默认直接读取所有。

spark.streaming.dis.maxRatePerPartition

限制每秒每个消费线程读取每个 DIS 分区最大的数据量,默认读取所有。

需要注意的是:

场景一:只有变量 3 激活的时候,每次消费的最大数据量,就是设置的数据量,如果不足这个数,就有多少读多少,如果超过这个数字,就读取这个数字的设置的值;

场景二:只有变量 1 和 3 激活的时候,每次消费读取的数量最大会等于变量 3 设置的值,最小是 Spark 根据系统负载自动推断的值,消费的数据量会在这两个范围之内变化根据系统情况,但第一次启动会有多少读多少数据。

场景三:变量 1, 2, 3 同时激活的时候,跟场景二的消费情况基本一样,但第一次消费会得到限制,因为我们设置第一次消费的频率了。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。