flink学习-系统架构相关

任务提交

我们在提交flink job时,一个flink job 会对应一个job manager

并行度(parallelism)

并行度是指flink任务在运行时算子运行时子任务的多少一般可以看做是有多大的并行度,包含并行子任务的数据流就是并行数据流,它需要多个分区来分配并行任务。一般情况,并行度是指整个任务运行过程中,并行度最大的算子。(任务提交时 -p 指定并行度),优先级:
conf配置《 任务提交参数指定《 代码全局设定并行度 《 算子指定并行性度

算子链(operator chain)

  • 一对一(one-to-one, forwarding)
    算子将传递不需要重新分区,也不需要调整数据的顺序。
  • 重分区(redistributing)
    比如keyBy这种,除了forward其他都是重分区

并行度相同的one-to-one的相邻算子可以进行算子链合并,降低子任务数,减少任务间跨线程次数。

  1. 全局禁用算子链:env.disableOperatorChaining();
  2. 某个算子不参与链化 算子A.disableChaining()
  3. 从某个算子开始新链条:算子A.startNewChain()

任务槽(Task Slots)

Flink中每一个TaskManager都是一个JVM进程,可以启动多个独立线程,来并行执行多个子任务(subtask),每个任务槽(task slot)起始表示了TaskMananger 拥有计算资源的一个固定大小的子集,成为任务槽。如果一个taskManager有三个slot,它将会把管理的内存均分为三份,每个slot独占一份。
同一个作业中,不同任务节点的并行子任务可以放在同一个slot上执行(前提:属于同一个slot共享组)。
slot和并行度关系:任务槽是静态概念,是指TaskManager并行执行的能力,表示最大的并发上限,而并行度是动态概念,实际执行时的并行情况,在实际运行中占用了几个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

taotaobujuerulv

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

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

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

打赏作者

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

抵扣说明:

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

余额充值