Spark执行程序如何运行多个任务?

时间:2016-10-19 00:50:35

标签: scala hadoop apache-spark yarn

例如,如果执行程序的数量为40,但任务数为80,则表示每个执行程序将并行运行两个任务。此外,我的函数(执行哪些任务)不是正常的函数,但我在其中调用程序。因此,每项任务实际上需要几分钟才能完成。所以,我的问题是,Spark如何管理它?这些任务会共享执行程序的JVM吗?核心数量如何,它将在这两个任务之间分配?如果不希望这两个任务同时运行,但是以循环方式执行它们,即运行所有执行程序核心的第一个任务,并且只有当它完成时,运行第二项任务?

1 个答案:

答案 0 :(得分:2)

这取决于您如何分配资源,即核心数,每个执行程序的核心数和分配的内存数给执行程序。它还取决于你如何编程以达到最大并行度。

它还取决于您如何编码以获得最大并行度。如果有两个任务并且它们彼此独立,它们将并行运行。如果一个任务依赖于先前任务的结果,它们将以串行方式执行。

是的,通过制作两个执行器并为其分配可用内核,可以将核心数分为两个任务。

以循环方式执行任务,您需要定义分区方案并根据它分配资源。这将确保每个任务在执行其他任务后执行。

相关问题