setCompressOutput в Hadoop - PullRequest
       11

setCompressOutput в Hadoop

0 голосов
/ 30 августа 2011

Когда следует использовать, а не использовать FileOutputFormat.setCompressOutput(conf, true);

Я слышал, что он сжимает вывод картографа. Есть ли возможность сжимать выходную мощность со стороны редуктора?

(Если мое предположение неверно, пожалуйста, объясните мне, как сжимать выходные данные преобразователя и преобразователя!)

1 Ответ

4 голосов
/ 30 августа 2011

Вы можете управлять сжатием выходного сигнала редуктора с помощью mapred.output.compress и сжатием выходного сигнала преобразователя с помощью mapred.compress.map.output. Эти ключи конфигурации можно установить (true или false) в файле конфигурации всего сайта, в настройке задания или в качестве параметров -D, передаваемых Hadoop при запуске задания.

Сжатие вывода карты, как правило, хорошая идея. Я также сжимаю уменьшенный вывод, когда этот вывод не является конечным результатом, например, когда я запускаю другое задание поверх вывода предыдущего задания.

Сжатие часто помогает быстрее завершить работу (даже если для сжатия / распаковки требуется дополнительная обработка), поскольку это может значительно уменьшить количество операций ввода-вывода.

Вы также можете выбрать кодеки сжатия. Мы используем LZO, который не поставляется с Hadoop, но можно найти здесь:

https://github.com/kevinweil/hadoop-lzo

LZO сжимается довольно хорошо с минимальной нагрузкой на процессор. Bzip2 сжимается очень хорошо, но с более значительными накладными расходами. Gzip сжимается хуже при умеренных накладных расходах. (Это обобщения.) Я думаю, что LZO имеет лучший баланс характеристик.

...