Spark - 在执行期间改变并行度

Spark - change parallelism during execution

我的工作分为两部分:

问题是 executors/cores 的数量很大,HBase 集群的查询过于激进,这可能会导致生产不稳定。 executors/cores 太少,ML 计算需要很长时间才能执行。

由于执行器和内核的数量是在启动时设置的,我想知道是否有办法减少作业第一部分的执行器数量。

我显然想避免 运行 像 Hadoop 这样的两个单独的作业会在这两个步骤之间进行强制磁盘序列化。

感谢您的帮助

我想 dynamic allocation 就是您要找的。这也可以与 Spark Streaming 一起使用。

我认为您可能还需要稍微调整一下 RDD 的大小,以平衡数据摄取和数据处理,但根据您的实际用例,这可能非常具有挑战性。