1

Spark 有许多可配置的选项。在这里,我想知道在某些约束下的最佳配置是什么。

我已经看过很多这样的帖子,并且认为忽略数据结构的方法不会产生令人满意的解决方案。

集群配置

我们将设置已经建立的--executor-cores 5,因为之前所做的研究。让我们设置另一个约束,使得--executor-memory 60 Gb是阈值最大值。这可以表示为--executor-memory= min(60 Gb, EM)。

我们将集群中的节点数固定为N_0,这隐含地调节--num-executors(等于N_0 * average num-cores on node / 5)。

数据配置

我们以FN_0加载FSRDD. 这RDD最初的分区号PN等于FN_0。将所有文件加载到 RDD 中会产生记录RN = RDD.count()

问题

我想为 Input -> Map -> Filter -> Action 作业找到一个定性表达式或最佳解决方案--executor-memory--num-executors以及分区号。它们的相互依赖是什么?PNN_0,FN_0,FS,RN

我的假设是分区数在RN(大约 100.000)时是理想的,因此每条记录都有自己的任务,但是这种洗牌会以天文数字的方式扩展。对于他的产品FN_0 * FS--executor-memory.

4

0 回答 0