多谢一旦哥,我大概摸清楚了这几个关系,
目前使用kafka-consumer-perf-test.sh对单broker单分区的kafka压测在8核16G的情况下是30W/s每秒的消费能力。
SINK端的写入大概是20W/s
ON YARN的Per JOB模式下通过调整分区和并行度来进行扩容。
接下来的方向按照两位大佬所说应该是对应用的jvm调优来处理了。

感谢一旦哥和benchao哥


-----邮件原件-----
发件人: 赵一旦 [mailto:[email protected]] 
发送时间: 2020年9月25日 星期五 14:57
收件人: [email protected]
主题: Re: FlinkKafkaConsumer on Yarn 模式下 设置并行度无法提高kafka的消费速度,但是提交两个应用却可以

单分区情况下30MB,这和flink已经没关系了貌似。能否更高的消费,首先还得确认你是否由足够快的速度写入压测数据。
而kafka不论是写入还是消费都和分区数量有关系。所以压测flink的最高能力,首先你得压测kafka拿到一个你预设的最高压力,否则kafka分区1个,如果qps最高达到2w。那么你基于这个单分区kafka去压测flink,flink也不可能超过1w的qps去消费,懂吧?

压测flink,那么kafka部分你就得尽可能把分区设置很大,避免是kafka的瓶颈。

范超 <[email protected]> 于2020年9月25日周五 下午2:28写道:

> 感谢benchao哥这么快就回复了。我这边再多观察测试一下。
> 再次感谢
>
> -----邮件原件-----
> 发件人: Benchao Li [mailto:[email protected]]
> 发送时间: 2020年9月24日 星期四 16:06
> 收件人: user-zh <[email protected]>
> 主题: Re: FlinkKafkaConsumer on Yarn 模式下 设置并行度无法提高kafka的消费速度,但是提交两个应用却可以
>
> 我们一般提升作业吞吐能力的步骤就是看作业的反压情况,
> - 如果作业完全没有反压,说明此时处理能力大于上游数据产生速度
> - 如果作业有反压,就具体看下反压的是哪个算子,存在什么瓶颈。比如网络IO、磁盘IO、CPU;
>   当然,有时候内存问题也会表现为CPU现象,比如GC比较严重
>
> 范超 <[email protected]> 于2020年9月24日周四 上午10:48写道:
>
> > 谢谢Benchao哥回复。
> >
> > 这几天一直忙着压测这个问题。
> > 经多轮压测(先灌满kafka数据),再去消费。
> > 发现确实是您说的问题中的第三个情况
> > 由于kafka的topic只开了一个partition
> >
> >
> 所以flinkkafkaconsumer按照一个taskmanger对应了一个kafka的parition的方式进行了处理。从而导致虽然作业并发度够大,但是由于只有一个partition,
> > 其他并发的taskmanager无法获取到更多的partition进行消费,从而导致并行度提升而作业消费能力却无法同比增大。
> >
> > 之后通过建立2个partition的topic,实现了消费能力的翻倍。
> >
> >
> > 想再请多问您一句,我如果想压出作业的极限吞吐量,请问该如何设置一些运行参数,目前我通过设置on yarn
> > 的tm的内存大小,kafka的partition数目,也无法将作业的吞吐量压上去。
> >
> >
> >
> > -----邮件原件-----
> > 发件人: Benchao Li [mailto:[email protected]]
> > 发送时间: 2020年9月18日 星期五 18:49
> > 收件人: user-zh <[email protected]>
> > 主题: Re: FlinkKafkaConsumer on Yarn 模式下 设置并行度无法提高kafka的消费速度,但是提交两个应用却可以
> >
> > 提交两个作业的话,两个作业是完全独立的,都会消费全量数据。
> >
> > 一个作业的消费能力不行,可以具体看下瓶颈在哪里,比如:
> > 1. 作业是否有lag,如果没有lag,那其实是没有问题的
> > 2. 如果作业有lag,而且lag还在上涨,说明当前消费能力不足,此时可以看下作业具体的瓶颈在哪里
> >     有可能是某个算子在反压导致整个作业的消费能力不足
> >     也有可能是作业的整体CPU资源不足导致的
> >     也有一种极端情况是,作业的并发度已经足够大,source subtask已经对应一个kafka
> > partition了,但是消费能力还是不足,这个时候其实是单个partition数据量太大,对应到Flink的source算子处理能力不足导致的
> > 3. 如果作业当前有lag,但是lag在下降,说明消费能力其实是够的,只是数据有些积压
> >
> > 范超 <[email protected]> 于2020年9月18日周五 下午4:07写道:
> >
> > > 各位好,我遇到了一个奇怪的问题
> > >
> > > 我是使用flink1.10和 flink-connector-kafka_2.11
> > >
> > > 使用Flink on yarn 模式运行,无论怎么调大并行度。Kafka节点(我使用的单节点)的网卡输出速度一直上不去。
> > >
> > > 但是提交两个同样的应用同样使用FLink on Yarm模式,Kafka节点的网卡输出速度是正常翻倍的。
> > >
> > > 我想达到的目的不是通过多向yarn集群提交多一个app,而是通过设置并行度来提高应用的吞吐量。。
> > >
> > > 求各位大佬指导
> > >
> >
> >
> > --
> >
> > Best,
> > Benchao Li
> >
>
>
> --
>
> Best,
> Benchao Li
>

回复