Flink 并行度问题

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Flink 并行度问题

Jacob
This post was updated on .
CONTENTS DELETED
The author has deleted this message.
Thanks!
Jacob
Reply | Threaded
Open this post in threaded view
|

Re: Flink 并行度问题

nobleyd
不清楚你为啥需要想这些,集群的并行度你随意设置就好,考虑CPU核数等的地方都只是考虑理想情况的并发。
比如你CPU最高10个核,来20个线程也没办法“并行”,但是可以“并发”。如果你的线程事情很少,10个并发是无法占满10个CPU核的,所以没任何理由因为CPU核的数量去限制你的并发度。

Jacob <[hidden email]> 于2021年1月22日周五 下午4:18写道:

> 使用Flink以来,一直有一个问题困扰着。
>
>
> Flink 设置n个并行度后,是指占用n个CPU,而不是n个CPU核数。
>
> 比如Flink消费kafka
>
> topic时,并行度数量往往都建议设置topic分区的个数,意在让每个并行度消费一个分区,达到性能最优。那也就是说一个并行度代表一个消费线程,同时也表示一个slot,又由于在Flink中一个并行度表示一个CPU,那么是不是可以理解为一个CPU就是一个线程。
>
>
> 如果FLink 以standalone的模式部署在一台机器上,这台机器有4个CPU,每个CPU有6个核,那么该集群的最大并行度是不是就是 4 ?
>
> 在我的认识中,一个核表示一个线程,但在上面的理解中,好像是一个CPU就是一个线程,这是否矛盾呢?
>
>
>
>
> -----
> Thanks!
> Jacob
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re:Flink 并行度问题

Ye Chen
In reply to this post by Jacob
@jacob
hi, TaskManager 的一个 Slot 代表一个可用线程,该线程具有固定的内存,并且 Slot 只对内存隔离,没有对 CPU 隔离。
而slot 和并行度的关系是:Slot 是指 TaskManager 最大能并发执行的能力,parallelism 是指 TaskManager 实际使用的并发能力。
个人见解,并行度的设置一般无需考虑CPU。







在 2021-01-22 16:18:32,"Jacob" <[hidden email]> 写道:

>使用Flink以来,一直有一个问题困扰着。
>
>
>Flink 设置n个并行度后,是指占用n个CPU,而不是n个CPU核数。
>
>比如Flink消费kafka
>topic时,并行度数量往往都建议设置topic分区的个数,意在让每个并行度消费一个分区,达到性能最优。那也就是说一个并行度代表一个消费线程,同时也表示一个slot,又由于在Flink中一个并行度表示一个CPU,那么是不是可以理解为一个CPU就是一个线程。
>
>
>如果FLink 以standalone的模式部署在一台机器上,这台机器有4个CPU,每个CPU有6个核,那么该集群的最大并行度是不是就是 4 ?
>
>在我的认识中,一个核表示一个线程,但在上面的理解中,好像是一个CPU就是一个线程,这是否矛盾呢?
>
>
>
>
>-----
>Thanks!
>Jacob
>--
>Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Flink 并行度问题

nick
In reply to this post by Jacob
如果是 standalone的模式部署在一台机器上,那么据我了解,只会有一个TM,一个TM可以有多个slot

Jacob <[hidden email]> 于2021年1月22日周五 下午4:18写道:

> 使用Flink以来,一直有一个问题困扰着。
>
>
> Flink 设置n个并行度后,是指占用n个CPU,而不是n个CPU核数。
>
> 比如Flink消费kafka
>
> topic时,并行度数量往往都建议设置topic分区的个数,意在让每个并行度消费一个分区,达到性能最优。那也就是说一个并行度代表一个消费线程,同时也表示一个slot,又由于在Flink中一个并行度表示一个CPU,那么是不是可以理解为一个CPU就是一个线程。
>
>
> 如果FLink 以standalone的模式部署在一台机器上,这台机器有4个CPU,每个CPU有6个核,那么该集群的最大并行度是不是就是 4 ?
>
> 在我的认识中,一个核表示一个线程,但在上面的理解中,好像是一个CPU就是一个线程,这是否矛盾呢?
>
>
>
>
> -----
> Thanks!
> Jacob
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Flink 并行度问题

gimlee
In reply to this post by Jacob
并行度和CPU的核数没啥关系。
设置slot数量也不代表使用多少个CPU。



--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Flink 并行度问题

Jacob
In reply to this post by nobleyd
谢谢回复。

你所说的并行度随意设置,我不清楚是什么意思


我在on yarn模式提交job时,比如设置job并行度是25,那么在hadoop yarn portal中看到的VCores Used
就是25,也就是说它就是申请了25个CPU

可是在standalone模式下(3台机器,每台机器4个CPU),那我设置的并行度最大是不是就是12呢?超过这个数量就会报错,资源不够之类的错误提示。  

其实这样三台机器组成的flink集群,往往可申请的可用slot并不是12个,而是小于12个,是不是因为当下CPU剩余量不够,可申请到的slot才达不到12个?






-----
Thanks!
Jacob
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Thanks!
Jacob
Reply | Threaded
Open this post in threaded view
|

Re: Re:Flink 并行度问题

Jacob
In reply to this post by Ye Chen
谢谢回复~

在我的理解中,并行度数量不应该超过CPU的数量的。



-----
Thanks!
Jacob
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Thanks!
Jacob
Reply | Threaded
Open this post in threaded view
|

Re: Re:Flink 并行度问题

nobleyd
按照你的理解,别说服务器了,你自己的笔记本电脑都别工作了。你电脑才几核,开机后进程数量就超过CPU数了,这些进程难道不工作了?

多线程、多线程,不是说N核的就只有N个线程呀。

你standalone,每个机器想设置多少个slot都没问题,和你的机器CPU没关系懂了嘛。“没关系”。

Jacob <[hidden email]> 于2021年1月23日周六 下午4:35写道:

> 谢谢回复~
>
> 在我的理解中,并行度数量不应该超过CPU的数量的。
>
>
>
> -----
> Thanks!
> Jacob
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/
>
Reply | Threaded
Open this post in threaded view
|

Re: Re:Flink 并行度问题

nobleyd
on yarn是另一回事情,yarn自身有自身对资源的衡量方式,就是vcore。
你设置你的作业25并行,默认yarn可能就是按照1个并发对应1个vcore,就这么个意思。肯定有参数可以调整的,你可以让1个并发对应10个vcore都没问题。
就是一种衡量方式而已。

赵一旦 <[hidden email]> 于2021年1月23日周六 下午8:20写道:

> 按照你的理解,别说服务器了,你自己的笔记本电脑都别工作了。你电脑才几核,开机后进程数量就超过CPU数了,这些进程难道不工作了?
>
> 多线程、多线程,不是说N核的就只有N个线程呀。
>
> 你standalone,每个机器想设置多少个slot都没问题,和你的机器CPU没关系懂了嘛。“没关系”。
>
> Jacob <[hidden email]> 于2021年1月23日周六 下午4:35写道:
>
>> 谢谢回复~
>>
>> 在我的理解中,并行度数量不应该超过CPU的数量的。
>>
>>
>>
>> -----
>> Thanks!
>> Jacob
>> --
>> Sent from: http://apache-flink.147419.n8.nabble.com/
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: Re:Flink 并行度问题

Jacob
In reply to this post by nobleyd
我明白了。。。感谢!!(最近很容易陷入这些低级的错误认知中)。越想越觉得这个问题很傻   233333....



-----
Thanks!
Jacob
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Thanks!
Jacob