CC00046.flink——|Hadoop&Flink.V01|——|Flink.v01|关于并行度设置|

一、关于并行度的设置
### --- 关于并行度的设置

~~~     一个Flink程序由多个Operator组成(source、transformation和 sink)。
~~~     一个Operator由多个并行的Task(线程)来执行, 
~~~     一个Operator的并行Task(线程)数目就被称为该Operator(任务)的并行度(Parallel)
二、并行度可以有如下几种指定方式
### --- Operator Level(算子级别)(可以使用)
~~~     一个算子、数据源和sink的并行度可以通过调用 setParallelism()方法来指定

actions.filter(new FilterFunction<UserAction>() {
               
        @Override
        public boolean filter(UserAction value) throws Exception {
        return false;
    }
}).setParallelism(4);
### --- Execution Environment Level(Env级别)(可以使用)

~~~     执行环境(任务)的默认并行度可以通过调用setParallelism()方法指定。
~~~     为了以并行度3来执行所有的算子、数据源和data sink, 
~~~     可以通过如下的方式设置执行环境的并行度:
~~~     执行环境的并行度可以通过显式设置算子的并行度而被重写
StreamExecutionEnvironment env =
    StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(4);
### --- Client Level(客户端级别,推荐使用)(可以使用)

~~~     并行度可以在客户端将job提交到Flink时设定。
~~~     对于CLI客户端,可以通过-p参数指定并行度./bin/flink run -p 10 WordCount-java.jar
### --- System Level(系统默认级别,尽量不使用)

~~~     在系统级可以通过设置flink-conf.yaml文件中的parallelism.default属性来指定所有执行环境的
~~~     默认并行度示例
~~~     # Example1
~~~     在fink-conf.yaml中 taskmanager.numberOfTaskSlots 默认值为1,
~~~     即每个Task Manager上只有一个Slot ,此处是3
~~~     Example1中,WordCount程序设置了并行度为1,
~~~     意味着程序 Source、Reduce、Sink在一个Slot中,占用一个Slot

~~~     # Example2
~~~     通过设置并行度为2后,将占用2个Slot
~~~     # Example3
~~~     通过设置并行度为9,将占用9个Slot

~~~     # Example4
~~~     通过设置并行度为9,并且设置sink的并行度为1,则Source、Reduce将占用9个Slot,
~~~     但是Sink只占用1个Slot
### --- 注意

~~~     并行度的优先级:算子级别 > env级别 > Client级别 > 系统默认级别 
~~~     (越靠前具体的代码并行度的优先级越高)
~~~     如果source不可以被并行执行,即使指定了并行度为多个,也不会生效
~~~     尽可能的规避算子的并行度的设置,因为并行度的改变会造成task的重新划分,带来shuffle问题,
~~~     推荐使用任务提交的时候动态的指定并行度
~~~     slot是静态的概念,是指taskmanager具有的并发执行能力; 
~~~     parallelism是动态的概念,是指程序运行时实际使用的并发能力
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值