#hadoop #mapreduce #hive #shuffle
#hadoop #mapreduce #hive #перемешать
Вопрос:
Я пытаюсь использовать SSD для повышения производительности улья. То есть SSD имеют высокоскоростной произвольный доступ. Используя преимущество, чтобы попытаться изменить hive, который будет выполняться в коде mapreduce. Теперь моя идея состоит в том, чтобы упростить или исключить этап перетасовки. Возможно ли это? Если возможно, где вы делаете изменения?
ps. Расскажите нам, что происходит, когда работает hive, где хранятся временные файлы.
Я плохо знаю английский. Прошу прощения. Спасибо.
Ответ №1:
Теоретически вы можете написать свой собственный разделитель и отправлять данные в reducer, который запускается на том же узле, где работал mapper. Делая это, вы никогда не получите выходной файл «нерасщепленным», поэтому избегать перетасовки — плохая идея.
Если у вас быстрый диск, каким может быть SSD, вы можете увеличить размер блока. Обычно размер блока вычисляется таким образом, чтобы время поиска не превышало 1% от всей передачи блока.
Это также уменьшит количество используемых mapper, поскольку количество разделений невелико. В некотором смысле, меньше картографирования означает также меньше перетасовки. Использование сжатого формата файла для промежуточного файла также ускоряет работу.