SparkSql中多个Stage的并发执行

本文探讨了Hive中SQL作业的并发执行,以及SparkSQL如何并行执行多个Stage。当Hive的`hive.exec.parallel=true`,无依赖的Job可以并发。在Spark中,无相互依赖的Stage能够并行运行,而有依赖的必须等待前一个完成。Stage的并发度受资源限制。源码分析表明,Spark递归提交Stage,从根节点开始,多个根节点并行提交。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写一篇水水的技术文,总结一下sparksql中不同stage的并行执行相关,也是来自于一位群友的提问:

我们群里有很多技术很棒并且很热心的大佬,哈哈~

Hive中Job并发执行

hive中,同一sql里,如果涉及到多个job,默认情况下,每个job是顺序执行的。

但如果某些job没有前后依赖关系的话,是阔以并行执行的,这样可能使得整个job的执行时间缩短。

可以通过设置参数 set hive.exec.parallel=true,实现job并发执行,该参数默认可以并发执行的job数为8,相关参数如下:

set hive.exec.parallel=true;              //打开任务并行执行
set hive.exec.parallel.thread.number=16;  //同一个sql允许最大并行度,默认为8。

Spark中多个Stage的并发执行

先给结论:

  • 没有相互依赖关系的Stage是可以并行执行的,比如union all 两侧的sql

  • 存在依赖的Stage必须在依赖的Stage执行完成后才能执行下一个Stage

  • Stage的并行度取决于资源数(配制的参数以及队列资源的核数、内存等),相关参数如下: 

set spark.dynamicAllocation.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小萝卜算子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值