如何制作比我拥有的线程更多的分区?

时间:2019-06-25 15:44:49

标签: scala apache-spark cluster-computing

我的集群具有以下特征:

  

4个节点,每个节点8个核心,每个节点8GB

运行程序时,它具有以下特征:

  

-部署模式集群   --executor-cores 5   --num-executors 4   -执行者内存6G   -驱动程序内存5G

30个线程(用于repartition函数)

问题在于,对于500000个元组来说,这会延迟很多,并且当我增加线程数(例如30个)时,它可以正确执行分配,但是每个节点的每个线程仅处理已签名的部分,而不是全部它应为元组(500000/30 = 16666,每个线程15 * 16666 = 250000,500000-250000 = 250000个未处理的元组)。

当我在计算机上尝试使用local[15](即使我只有4个线程)时,该算法会将数据分配到我指示的15个线程中,并为其分配相应的元组数。

我希望在群集中会发生类似我的计算机的行为,但是它只是实现了我指示的线程数之间的数据分区,但只处理了群集具有的15个物理线程。我该如何解决这个问题,或者在集群中无法进行更多的分区?

0 个答案:

没有答案