Повышение производительности hive с помощью SSD

#hadoop #mapreduce #hive #shuffle

#hadoop #mapreduce #hive #перемешать

Вопрос:

Я пытаюсь использовать SSD для повышения производительности улья. То есть SSD имеют высокоскоростной произвольный доступ. Используя преимущество, чтобы попытаться изменить hive, который будет выполняться в коде mapreduce. Теперь моя идея состоит в том, чтобы упростить или исключить этап перетасовки. Возможно ли это? Если возможно, где вы делаете изменения?

ps. Расскажите нам, что происходит, когда работает hive, где хранятся временные файлы.

Я плохо знаю английский. Прошу прощения. Спасибо.

Ответ №1:

Теоретически вы можете написать свой собственный разделитель и отправлять данные в reducer, который запускается на том же узле, где работал mapper. Делая это, вы никогда не получите выходной файл «нерасщепленным», поэтому избегать перетасовки — плохая идея.

Если у вас быстрый диск, каким может быть SSD, вы можете увеличить размер блока. Обычно размер блока вычисляется таким образом, чтобы время поиска не превышало 1% от всей передачи блока.

Это также уменьшит количество используемых mapper, поскольку количество разделений невелико. В некотором смысле, меньше картографирования означает также меньше перетасовки. Использование сжатого формата файла для промежуточного файла также ускоряет работу.