当前位置: 首页 > 知识库问答 >
问题:

Flink中算子并行性的几个难题

贺正祥
2023-03-14

我刚刚得到了下面的例子,用于并行性,并有一些相关的问题:

>

  • setParallelism(5)将并行度5设置为sum或同时设置flatMap和sum?

    有没有可能,我们可以将不同的并行度分别设置到不同的运算符如flatMap和sum上?比如将并行度5设置到sum,将并行度10设置到flatMap上。

    final StreamExecutionEnvironment env =     
      StreamExecutionEnvironment.getExecutionEnvironment();
    
    DataStream<String> text = [...]
    DataStream<Tuple2<String, Integer>> wordCounts = text
      .flatMap(new LineSplitter())
      .keyBy(0)
      .timeWindow(Time.seconds(5))
      .sum(1).setParallelism(5);
    
    wordCounts.print();
    
    env.execute("Word Count Example");
    
  • 共有1个答案

    沈巴英
    2023-03-14

    当对运算符调用setParallelism时,它会更改此特定运算符的并行性。因此,在您的示例中,只有window运算符将以5的并行度执行,前面的FlatMap运算符将以默认并行度执行。

    因此,您可以为每个运算符设置不同的并行度。但是,请注意,具有不同并行性的运算符不能被链接,并且需要重新平衡(类似于shuffle)操作。

    如果您想为所有操作符设置并行性,那么您必须通过executionenvironment#setparallelismAPI调用来完成。

     类似资料:
    • 我需要执行一些任务。有些任务是独立的,有些任务依赖于其他任务的成功执行。独立任务可以并行运行以获得更好的性能。我把这些任务称为服务。列说明哪些服务将以串联方式执行,哪些服务将以并联方式执行。列描述了一组定义的服务所遵循的执行顺序。例如,服务A和B应该并行运行。如果它们已成功执行,则将执行服务C。请注意,服务C并不直接依赖于其先前服务的输出,但它必须在成功执行其先前服务后运行,因为服务C在执行期间需

    • 在里面https://ci.apache.org/projects/flink/flink-docs-release-1.8/concepts/programming-model.html#parallel-数据流,有一个描述 操作符子任务的数量是该特定操作符的并行度。流的并行性始终是其生成操作符的并行性。同一程序的不同操作符可能具有不同的并行级别。 我不明白什么是流的并行性总是它的生成操作符的并

    • 我需要计算和的中位数。但是,要计算每个中位数,我必须包括具有相同面和相同类别的所有行。例如,要计算第二行的中位数,我必须包括行 2 和 3,因为我在第 2 行和第 3 行中具有相同的面和 。我正在尝试使用循环函数,但我不知道如何包含此条件。 这就像一个条件中位数。 非常感谢您的关注。 这里,就是例子:

    • 问题内容: 如何配置freemarker以在多个jar中搜索模板?随着春天。 一个war文件(要部署)和jar文件(依赖项)。 一战 /freemarker/simple.ftl Two.jar /freemarker/test.ftl 工作。 不工作。找不到test.ftl 如果设置为: 一战 /freemarker/simple.ftl Two.jar /freemarker2/test.ft

    • 我有一个数据流,其中事件的顺序很重要。时间特性设置为EventTime,因为传入记录中有时间戳。 为了保证排序,我将程序的并行度设置为1。当我的程序变得更复杂时,这会成为性能方面的问题吗? 如果我理解正确的话,我需要给我的事件分配水印,如果我想让流按时间戳排序的话。这很简单。但我读到即使这样也不能保证秩序?稍后,我想对那个流进行有状态计算。因此,为此我使用了一个FlatMap函数,它需要对流进行键

    • 本文向大家介绍F# 折叠介绍,并举几个例子,包括了F# 折叠介绍,并举几个例子的使用技巧和注意事项,需要的朋友参考一下 示例 折叠是与元素序列一起使用的(高阶)函数。他们崩溃seq<'a>到'b那里'b是任何类型(还可能'a)。这有点抽象,因此让我们进入具体的实际示例。 计算所有数字的总和 在此示例中,'a是int。我们有一个数字列表,我们想计算所有数字的总和。总结列表中的数字,[1; 2; 3]