如何同时在spark中执行多个应用程序(jar)?

时间:2015-09-01 09:00:39

标签: apache-spark spark-streaming

当我尝试提交超过1个jar时,只有1个开始处理,其他人仍处于等待状态。发生这种情况是因为所有工作人员都被分配到第一个应用程序。

可用的设置(spark.cores.max)是为了限制jar /应用程序的核心数,而不是工作人员/执行者的数量。

所以会发生的情况是,如果我创建8个拥有4个核心的工作者,即总共32个核心。

如果我的应用程序将属性spark.cores.max设置为10个核心,它将使用所有8个核心的工作人员,即6个工作人员的1个核心和2个工作人员的2个核心,或者所有工作人员的类似设置。 当我提交另一个jar时,它会一直处于等待状态,直到运行的应用程序结束。

截至目前,我正在为每个核心创造1名工人,即32名工人,这是奇怪的。

因此有一种方法可以处理spark中的这种情况,因为由于这个原因,我的执行程序无法正常工作,并且在一段时间后因某些未知原因停止工作或者我开始获得OOM异常。

1 个答案:

答案 0 :(得分:0)

尝试使用--num-executors参数。请记住,例如,如果您在群集模式下将作业提交到YARN,则应用程序驱动程序需要一名工作人员,因此您的应用程序将消耗比您指定的工作人员多一名的工作人员。 --num-executors