Искровые исполнители, задачи и разделы - PullRequest
0 голосов
/ 09 ноября 2019

Я начинаю все больше путаться, поскольку продолжаю читать онлайн-ресурсы об архитектуре и планировании Spark. В одном ресурсе говорится, что: Количество задач на этапе равно количеству разделов в последнем СДР на этапе . С другой стороны: Spark отображает количество задач на конкретном Исполнителе на количество ядер, выделенных ему . Итак, первый ресурс говорит, что если у меня будет 1000 разделов, то у меня будет 1000 задач, независимо от того, какая у меня машина. Во втором случае, если у меня 4 ядра и 1000 разделов, то что? У меня будет 4 задания? Тогда как обрабатываются данные?

Еще одна путаница: каждый работник может обрабатывать по одной задаче за раз и Исполнители могут выполнять несколько задач в течение своего времени жизни, как параллельно, так и последовательно . Так являются ли задачи последовательными или параллельными?

1 Ответ

2 голосов
/ 09 ноября 2019
  • Количество задач задается числом разделов RDD / DataFrame
  • Количество задач, которые исполнитель может обрабатывать параллельно, определяется количеством ядер, кроме случаев, когда spark.task.cpus настроен на что-то другое, чем 1 (что является значением по умолчанию)

Так что думайте о задачах как о некотором (независимом) куске работы, который должен быть обработан. Они, безусловно, могут работать параллельно

Так что, если у вас 1000 разделов и 5 исполнителей по 4 ядра в каждом, 20 задач, как правило, будут выполняться параллельно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...