我有8个执行器,每个执行器有4个核心,我将rdd重新分区为32个。我希望所有8个执行程序在我调用重新分区数据的下一个操作上发挥作用。但似乎有时3个遗嘱执行人参与,有时4个但不多于此。
如何确保数据在所有执行程序上划分?
rdd.repartition(32).foreachPartition {part => updateMem(部分) } 最后一部分将inser / update调用到memsql中。
答案 0 :(得分:0)
以下答案仅在您使用AWS-EMR时有效。 我不认为你有8个执行器,每个4个核心是正确的。这是解释。说,我使用的是m3.2xlarge机器(EMR)。
要特定于您的使用案例,请查看每台机器的可用内存总量以及这两个参数的spark-conf(/etc/spark/conf/spark-defaults.conf)并进行相应调整。