Spark中每个任务的动态CPU

时间:2016-11-23 08:06:44

标签: multithreading apache-spark pyspark

让我们说我的工作执行了几个spark操作,其中前几个没有为单个任务使用多个内核,所以我希望每个实例并行执行(executor.cores)任务(spark.task.cpus=1) 。

然后假设我有另一个可以并行化的操作 - 我希望能够增加spark.task.cpus的功能(比如在执行程序上使用更多内核),并在每个实例上同时执行更少的任务

我现在的解决方法是保存数据,使用新设置启动新的sparkContext并重新加载数据。

用例:我后来的行为可能是不可避免的倾斜,我可能希望每个任务应用多个核心以避免对这些大型任务造成瓶颈,但我不希望这会影响早期的行动每个任务使用1个核心可以获益。

从我四处看看我的猜测是我目前无法做到这一点,所以我主要想知道是否存在不允许这样做的重大限制。或者,建议我如何欺骗实现类似的东西。

注意:目前使用1.6.2但愿意听取Spark2 +的其他选项

0 个答案:

没有答案