2013-09-16 12 views
0

Я использую hasoop cdh4.1.2, и моя программа mapper - это почти эхо входных данных. Но в моей странице статуса работы, я увиделВыход компрессора Hadoop не работает?

FILE: Number of bytes written 3,040,552,298,327 

почти равен

FILE: Number of bytes read 3,363,917,397,416 

для картографов, в то время как я уже установил

conf.set("mapred.compress.map.output", "true"); 

, кажется, их сжатие алгоритма не работает для моей работы? почему это?

ответ

1

Имеет ли ваша работа редуктор?

Если это так, установите флажок «Уменьшить байты в случайном порядке». Если это значительно меньше (1/5 или около того) «Отображать выходные байты», вы можете предположить, что вывод карты сжат. Копирование происходит после того, как карта выполнена, он может показывать фактический размер данных, которые он имеет, а не сжатый размер.

Если вы все еще сомневаетесь в том, работает ли он, отправьте задание с сжатием и без него и сравните «Уменьшить байты в случайном порядке». Что касается сжатия на выходе карты, то это означает, что «Сократить байты в случайном порядке».

+0

благодаря выходные Карта байт = 3219090158272 Снизить воспроизведения в случайном порядке байт = 1514030378633 это средний алгоритм компрессионного по умолчанию не подходит для моих данных (чистый текст) – Shawn

+0

Похоже it.I никогда не используется по умолчанию codec.Can вы держите conf.set ("mapred.map.output.compression.codec", "org.apache.hadoop.io.compress.SnappyCodec"); и снова увидеть цифры? Вы также можете попробовать lzo, если он доступен в вашем дистрибутиве. –

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