分布式计算,其实就是大任务拆分小任务,最后在汇总结果的过程,也就是一个任务的调度过程。
Flink任务相关的概念:
·
Job-作业:作业是提交的要完成的整个数据处理的总的任务;
·
Task-任务:一个作业将被拆分成多个任务然后分配到多个节点上进行执行,所以Task是最小的执行单元;
·
Slot-槽:槽是负责执行Task的载体,一个节点有几个Slot,就能执行几个Task;
所以,想要一个作业尽快完成,就要将一个Job拆分成合理数量的Task,分散到Slot上执行,这个就是作业的并行能力。
一个Job的并行能力可以设置Job的parallelism实现,当parallelism=3时,则一个Job会同时有3个Slot执行;每个计算机节点需要根据自己的内存和CPU的情况设置合理的slot数量来限制同时执行Task的数量,保证自己不会因为同时执行的Task过多而导致故障。而如果有更多的任务进来则会进入任务队列进行排队等待空闲的Slot。
如果作业需要更多的并行数量,但是一台计算机的Slot不能无限增加,否则会因为运行过多的任务而出现故障,这是可以通过资源管理,申请更多的容器来使一个作业能够有更多的Slot并行计算。
领取专属 10元无门槛券
私享最新 技术干货