flink学习-7(parallelism and slot)

flink中parallelism

parallelism是flink中并行度,用以提高flink任务job的执行效率,可以通过调整配置提高flink任务中并行度
调整并行度方式:

  1. conf配置
    flink-conf.yaml
# The parallelism used for programs that did not specify and other parallelism.
parallelism.default: 1
  1. 任务提交时设置并行度
    启动你的 Flink job,可以这样设置并行度(使用 -p 并行度)
./bin/flink run -p 10 ../word-count.jar
  1. 代码设置并行度
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(10);

data.keyBy(new xxxKey())
    .flatMap(new XxxFlatMapFunction()).setParallelism(5)
    .map(new XxxMapFunction).setParallelism(5)
    .addSink(new XxxSink()).setParallelism(1)

flink中slot

任务中并行度由每个Task Manager上可用的slot决定,slot在flink中可以认为是资源组,Flink将每个任务分成子任务并且将这些子任务分配到slot中来并行执行程序。
可以在一个 slot 中运行一个或多个线程。 同一 slot 中的线程共享相同的 JVM。 同一 JVM 中的任务共享 TCP 连接和心跳消息。Task Manager 的一个 Slot 代表一个可用线程,该线程具有固定的内存,注意 Slot 只对内存隔离,没有对 CPU 隔离。默认情况下,Flink 允许子任务共享 Slot,即使它们是不同 task 的 subtask,只要它们来自相同的 job。这种共享可以有更好的资源利用率。
可以通过调整flink-conf.yaml参数进行调整

taskmanager.numberOfTaskSlots:1

参考文档

http://www.54tianzhisheng.cn/2019/01/14/Flink-parallelism-slot/

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

taotaobujuerulv

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

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

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

打赏作者

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

抵扣说明:

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

余额充值