2016-11-29 4 views
0

Каким будет количество разделов для кластера из 10 узлов с 20 исполнителями и код, читающий папку со 100 файлами?Как определить количество партитандов rdd в искрах, учитывая количество ядер и исполнителей?

+0

Возможный дубликат [Как секционирования работу Спарк?] (http://stackoverflow.com/questions/26368362/how-does-partitioning-work-in-spark) –

ответ

0

С Спарк документ:

По умолчанию Спарк создает один раздел для каждого блока из файла (блоков, 64MB по умолчанию в HDFS), но вы также можете попросить большего числа разделов передавая большее значение. Обратите внимание, что у вас не может быть меньше разделов, чем блоков.

Количество разделов также зависит от размера файла. Если размер файла слишком велик, вы можете выбрать большее количество разделов.

0

Количество разделов для объектов scala/java RDD будет зависеть от ядра машин, и если вы создаете RDD с использованием входных файлов Hadoop, то это будет зависеть от размера блока hdfs (зависит от версии). найти число разделов в РДУ следующим

rdd.getNumPartitions

1

Он отличается в различных режимах, что вы работаете, и вы можете настроить его с помощью параметра spark.default.parallelism. От искры Документации:

Для таких операций, как распараллелить, без родительского РДА, это зависит от менеджер кластера:

Local mode: number of cores on the local machine 
Mesos fine grained mode: 8 
Others: total number of cores on all executor nodes or 2, whichever is larger 

Ссылка на соответствующую документацию: http://spark.apache.org/docs/latest/configuration.html#execution-behavior

Вы можете сами измените количество разделов самостоятельно в зависимости от данных, которые вы читаете. Некоторые из Spark api предоставляют дополнительную настройку для количества разделов ,

Далее, чтобы проверить, сколько перегородки становятся созданы сделать как @Sandeep Пурохит говорит

rdd.getNumPartitions

И это приведет в число разделов, которые становятся созданной!

Вы также можете изменить количество partitons после его создания с помощью двух API, а именно: сливаются и переделу

Ссылка сливаться и Передел: Spark - repartition() vs coalesce()

Смежные вопросы