Сжатие вывода картографа Hadoop не работает?

Я использую hadoop cdh4.1.2, и моя программа сопоставления — это почти эхо входных данных. Но на моей странице статуса работы я увидел

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");

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


person Shawn    schedule 16.09.2013    source источник


Ответы (1)


На вашей работе есть редуктор?

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

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

person Eswara Reddy Adapa    schedule 16.09.2013
comment
спасибо Выходные байты карты = 3219090158272 Уменьшить количество байтов в случайном порядке = 1514030378633 означает ли это, что алгоритм сжатия по умолчанию не подходит для моих данных (чистый текст) - person Shawn; 16.09.2013
comment
Похоже на то. Я никогда не использовал кодек по умолчанию. Можете ли вы сохранить conf.set(mapred.map.output.compression.codec,org.apache.hadoop.io.compress.SnappyCodec); и увидеть цифры снова? Вы также можете попробовать lzo, если он доступен в вашем дистрибутиве. - person Eswara Reddy Adapa; 16.09.2013