我对Flink、中可以并行工作的任务数量感到困惑
有人能给我解释一下吗:
- 分布式系统中的并行度是多少?及其与Flink术语的关系
- 在Flink中,它是否与我们所说的2个并行度=2个任务并行工作相同
- 在Flink中,如果两个操作符分别工作,但每个操作符的并行度都是1,那么这算并行计算吗
- 在KeyedStream中,最大并行度是键的数量,这是真的吗
- Flink中的当前CEP引擎是否能够在一个以上的任务中工作
谢谢。
Flink以一种非常标准的方式使用术语并行度——它指的是在多个处理器上同时运行同一计算的多个副本,但使用不同的数据。当我们谈到Flink的并行性时,它可以应用于具有并行实例的运算符,也可以应用于管道或作业(由几个运算符组成(。
在Flink中,几个操作员可以单独或同时工作。例如,在这份工作中
source ---> map ---> sink
源、映射和接收器可以同时在不同的处理器中运行,但我们不会称之为并行计算。(分布式,是的。(
在典型的Flink部署中,任务槽的数量等于作业的并行度,每个槽执行应用程序的一个完整的并行切片。操作员链的每个并行实例将对应于一个任务。因此,在上面的简单示例中,源、映射和接收器都可以链接在一起,并在单个任务中运行。如果您以两个并行度部署此作业,那么将有两个任务。但是,您可以禁用链接,并在每个操作员自己的任务中运行每个操作员,在这种情况下,您将使用六个任务以两个并行度运行作业。
是的,对于KeyedStream,不同键的数量是并行度的上限。
如果CEP在KeyedStream上操作,它可以并行运行(在这种情况下,模式匹配是为每个键独立完成的(。