Крупнейшая в мире платформа для поставок недостающих и труднодоступных деталей

Два основных перетасовки Spark

Опубликованное время: 2022-08-20 17:22:22
Во фреймворке MapReduce фаза Shuffle является мостом между Map и Reduce. Фаза сопоставления выводит данные в фазу сокращения с помощью процесса перемешивания.
Spark Shuffle

состоит из двух типов: Hash Shuffle; Другой - Shuffle на основе сортировки. Во-первых, мы представим их процесс разработки, чтобы помочь нам лучше понять

Shuffle:


До Spark 1.1 Spark реализует только один режим Shuffle, то есть Shuffle на основе хэша. В Spark 1.1 введено перемешивание на основе сортировки. После Spark 1.2 режим реализации перемешивания по умолчанию изменен с перемешивания на основе хэша на случайное воспроизведение на основе сортировки. Используемый ShuffleManager был изменен с хэша по умолчанию на сортировку. В Spark 2.0 Hash Shuffle больше не используется.


Одна из основных целей реализации Shuffle в Spark на основе Hash в первую очередь заключается в том, чтобы избежать ненужной сортировки. Если вы думаете о MapReduce в Hadoop, сортировка — это фиксированный шаг. Есть много задач, которые не нуждаются в сортировке. MapReduce также сортирует их, вызывая много ненужных накладных расходов.


В реализации Shuffle, основанной на Hash, каждая задача на этапе Mapper генерирует файл для каждой задачи iна этапе сокращения, который обычно генерирует большое количество файлов (соответствующих промежуточным файлам M * R, среди которых M указывает количество задач в фазе Mapper, а R указывает количество задач в фазе Reduce). Требуется большое количество случайных операций ввода-вывода на диске и большой объем накладных расходов на память.


Чтобы устранить вышеуказанные проблемы, в Spark 0.8.1 был введен механизм ShuffleConsolidate (механизм слияния файлов) для реализации Shuffle на основе хэша для объединения промежуточных файлов, созданных стороной Mapper. Настройте spark.shuffie. consolidateFiles = true для уменьшения количества промежуточных файлов. После объединения файлов можно изменить режим создания промежуточных файлов, чтобы создать по одному файлу для каждой задачи на этапе сокращения.


Единица выполнения — это количество ядер на каждом Mapper/количество Ядер, выделенных для каждой Задачи (значение по умолчанию — 1). Вы можете изменить количество файлов от M * R в E * C / T * R, где E указывает количество Исполнителей, C — количество доступных Ядер, а T — количество Ядер, выделенных для Задачи.


В Spark1.1 появилась сортировка в случайном порядке:


В реализации перемешивания на основе хэшей количество создаваемых промежуточных файлов результатов зависит от количества задач на этапе сокращения, то есть от степени параллелизма на стороне сокращения. Следовательно, количество файлов по-прежнему неконтролируемо, и проблемы не могут быть решены. Чтобы лучше решить эту проблему, в Spark1.1 была введена реализация Shuffle на основе сортировки, а после Spark 1.2 реализация по умолчанию изменилась с Shuffle на основе хэша, Change на реализацию Shuffle на основе Sort. То есть ShuffleManager изменяется с хэша по умолчанию на Sort.


В случайном порядке на основе сортировки задачи на каждом этапе сопоставления не создают отдельный файл для задач на каждом этапе сокращения. Вместо этого задачи на каждом этапе Mapper записываются в файл Создается файл данных и файл индекса. Задачи на этапе сокращения могут получать связанные данные через файл индекса. Непосредственным преимуществом отказа от больших файлов является уменьшение случайного дискового ввода-вывода / 0 и накладных расходов на память. Количество генерируемых файлов сокращается до 2 x M, где M обозначает количество задач на этапе Mapper. Каждая задача на этапе сопоставления создает два файла (один файл данных и один файл индекса), а окончательное количество файлов составляет M файлов данных и M индексных файлов. Поэтому итоговое количество файлов составляет 2*М.


Начиная с версии 1.4 Spark, в процессе Shuffle была введена реализация Shuffie, основанная на Tungstin-sort. Оптимизация вольфрамового проекта может значительно повысить производительность Spark при обработке данных. (Вольфрам переводится с китайского как вольфрам)


Примечание: В некоторых специфических сценариях применения механизм Shuffle на основе Hash может превзойти механизм Shuffle на основе Sort.


Другие продукты Горячие продажи

MECT-110-01-M-D-RA1
Pluggable Connectors
MECT-110-01-M-D-RA1
20 Position SFP+ Receptacle Connector Solder Surface Mount, Right Angle
TSHA4401
LED Emitters - Infrared, UV, Visible
TSHA4401
TSHA4401 Vishay Semiconductor Opto Division
MAX7456EUI-T
Аудио специального назначения
MAX7456EUI-T
MAX7456EUI+T Manufacturer Analog Devices Inc./Maxim Integrated Video IC Serial, SPI NTSC, PAL 28-TSSOP-EP Package
APTGF75H120TG
Транзисторы - IGBT - Модули
APTGF75H120TG
APTGF75H120TG Manufacturers Microchip Technology IGBT Modules Power Module - IGBT
R-785-0-0-5
DC-DC Converter
R-785-0-0-5
R-785.0-0.5 Manufacturer Recom Power Linear Regulator Replacement DC DC Converter 1 Output 5V 500mA 6.5V - 32V Input
R570452000
Coaxial Switches
R570452000
R570452000 Coaxial Switches SPDT Ramses SMA 18GHz Latching Self-cut-off 12Vdc Diodes Pins Terminals
NTCALUG01T103G400A
Датчики температуры - Термостаты - Твердотельные
NTCALUG01T103G400A
NTCALUG01T103G400A Temperature Sensors - Thermostats NTC LUG01T 10K 2% 3984K G26 40MM
AD8223ARMZ-R7
Аудио специального назначения
AD8223ARMZ-R7
Недорогой измерительный усилитель с одним источником питания
M29W640GB70NA6E
Ис памяти
M29W640GB70NA6E
Параллельная встроенная флэш-память NOR M29W640GH, M29W640GL M29W640GT, M29W640 ГБ
Популярный комментарий

Рекомендуемые детали