SparkStreaming限速

2020-04-19  本文已影响0人  你值得拥有更好的12138

SparkStreaming限速

Spark端限速

调整spark.streaming.kafka.maxrateperpartiton参数,它可以控制每秒处理的消息数

Kafka端限速

为某一个消费者设置每秒消费的字节数如下:

$ bin/kafka-configs.sh --zookeeper localhost:2181

--alter

--add-config 'consumer_byte_rate=15728640'

--entity-type clients

--entity-name clientA

然后在sparkstreaming配置消费者的id为“clientA”

Map<String, Object> kafkaParams = new HashMap<>();

kafkaParams.put("client.id", "clientA");

反压机制

以上两种方法有一个弊端:都需要人工去计算当前的流量大概是多大。先不说估计的流量准不准,需要在

流量变化后重新修改配置,重启程序。这就不太方便,所有Spark官网出现一个自动根据现在阶段的一些参数来自动就算这个值,并使用令牌桶算法进行限流。

参数

如果用户配置了 spark.streaming.receiver.maxRate 或 spark.streaming.kafka.maxRatePerPartition,那么最后到底接收多少数据取决于三者的最小值。也就是说每个接收器或者每个 Kafka 分区每秒处理的数据不会超过

上一篇 下一篇

猜你喜欢

热点阅读