Как искрообразование назначает раздел исполнителю.Когда и как искра распределяет разделы по исполнителям
Когда я побежал следующие строки в искровом оболочке с 1 водителя и 5 исполнителей:
> var data = sc.textFile("file") // auto generates 2 partitions
> data.count() // materialize partitions on two nodes
> data = data.repartition(10) // repartition data.count()
> data.count() // 10 partitions still on original 2 nodes
После переразделения, 10 перегородки по-прежнему лежит на первоначальных двух узлов (из 5). Это кажется очень неэффективным, поскольку на каждом узле, содержащем разделы, многократно выполняются 5 задач, а не равномерно распределены между узлами. Неэффективность наиболее очевидна для итеративных задач, которые многократно повторяются на одних и тех же rdds.
Итак, мой вопрос в том, как искра определяет, какой узел имеет этот раздел, и есть ли способ заставить данные перемещаться на другие узлы?
Вы говорите о двух узлах, но у вас есть один Исполнитель, который не имеет большого смысла. О чем он говорит? –
К сожалению, это была опечатка, только что отредактированная. Спасибо за указание – Yituo
У вас возникли проблемы с распределением задач Sparks? Или это общий вопрос? Сколько ядер имеет каждый Исполнитель? –