Разделение и распределение Spark RDD [дубликат]

  1. Это может произойти, если ваш путь к классам неверен
  2. . Положим сериализуемый класс и десериализуемый класс под тем же именем проекта. Вы запускаете сериализуемый класс, создавая сериализуемый объект в определенной папке. Теперь вам нужны десериализованные данные. Тем временем, если вы измените название проекта, это не сработает. Сначала необходимо запустить сериализуемый класс, а затем десериализовать файл.
16
задан Jacek Laskowski 26 September 2015 в 12:29
поделиться

1 ответ

По умолчанию раздел создается для каждого раздела HDFS, который по умолчанию составляет 64 МБ (из Руководство по программированию искры ).

Можно передать еще один параметр defaultMinPartitions который отменяет минимальное количество перегородок, создающих искры. Если вы не переопределите это значение, тогда искра создаст как минимум столько разделов, сколько spark.default.parallelism.

Поскольку предполагается spark.default.parallelism количество ядер на всех компьютерах вашего кластера I что в вашем случае будет создано не менее 3 разделов.

Вы также можете repartition или coalesce RDD изменить количество разделов, что, в свою очередь, влияет на общую доступность параллелизма.

21
ответ дан Jacek Laskowski 22 August 2018 в 20:22
поделиться
  • 1
    @jacek В случае default.parallelism (создано 3 раздела), а файл данных - 10 МБ (один блок на HDFS), сколько данных будут содержать разделы Spark? Будет ли это: 1. Разделен на 3 равные части (по 3.3 МБ каждый) и отправляется исполнителям. 2. Не разделен (P1 = 10 МБ, P2 = P3 = 0 МБ) и выполняется на том же узле из-за локализации данных. 3. Случайное перемещение данных во всех трех разделах. – CᴴᴀZ 26 October 2016 в 15:13
  • 2
    @mrmcgrep. В первом заявлении, которое вы сказали по умолчанию, будет создан раздел для каждого блока HDFS, а затем в третьем заявлении, который вы сказали, если мы не переопределим defaultMinPartitions, тогда он создаст как минимум столько же разделов как spark.default.parallelism, который, как предполагается, является числом ядер в кластере. Так он будет создавать partition=HDFS partition или =number of cores? – Explorer 8 March 2017 в 17:42
  • 3
    @LiveAndLetLive Я считаю, что все эти минимумы. У вас будет как минимум столько разделов, сколько наименьшее из трех значений. – mrmcgreg 8 March 2017 в 18:01
Другие вопросы по тегам:

Похожие вопросы: