在多个Job间公平的分发资源
FIFO调度执行模式
Spark是线程安全的,可以同时安全的执行多个Job, Spark程序内部默认是FIFO模式执行多个job,每个job分成多个Stage, 如果队列前面的Job的Stage中有Task需要执行,就会优先获取集群中的执行器资源,然后才是队列后面的job。 如果前面某一个job立刻执行完成那么后面的job就会马上获取资源进行执行,否转后面的job就需要一直等待其执行完成。
FAIR模式(job间的公平共享资源)
此模式下,Spark采用“循环”方式为不同job之间的Task分配资源,这个每个job都不需要等待其他job执行完成才开始获取资源执行,要开启此模式需要设置conf.set("spark,scheduler.mode","FAIR")
公平调度池
公平调度池执行多多个Job进行分组,这个分组成为调度池,每个调度池可设置不同调度选项,如优先级,资源共享模式;设置了调度池后资源的共享会按照调度池的单位来划分,不再是job的单位,且调度池之间是公平共享资源的;调度池内部还是FIFO的方式调度job