Как увеличить количество задач карты для MapReduce с помощью формата ввода bzip2

Я разработал mr, который правильно работает с текстовым файлом, выполняя несколько задач карты, но мне нужно запускать работу либо в архивах. Мой выбор - архив bzip2. С такими архивами моя работа работает только с одной картографической задачей.

Кто-нибудь знает, как я могу увеличить задачи карты?

Версия Hadoop: Hadoop 0.20.2-cdh3u5

Я пытался редактировать mapred-site.xml с другими параметрами, и это не сработало.


person Tanya    schedule 29.01.2013    source источник


Ответы (2)


Насколько велик ваш файл? А какой у вас размер блока? Bzip2 является разделяемым, поэтому, когда размер вашего файла превышает размер вашего блока, и ваш кодек Bzip2 настроен правильно, ваш файл будет автоматически разделен, и, таким образом, ваши задачи карты будут автоматически увеличиваться.

Свойства в mapred-site.xml предназначены для указания (промежуточного) вывода вашего задания. Когда вы используете сжатые файлы в качестве входных данных, вы должны установить это в core-site.xml с помощью io.compression.codecs.

Кроме того, на вашем месте я бы посмотрел на LZO. По умолчанию архивы LZO не являются разделяемыми, но есть способ проиндексировать их, чтобы они стали разделяемыми. LZO сжимает меньше по сравнению с Bzip2, но намного быстрее. Я сжал текстовый файл размером 32 ГБ с помощью Bzip2. Bzip2 сжал файл до 1,6 ГБ, но это заняло 6,5 часов. Когда я сделал то же самое с помощью LZO, он вернул мне файл размером 5 ГБ, но сделал это за 30 минут. Разница в декомпрессии еще больше. Также Bzip2 использует гораздо больше памяти.

О том, как индексировать файлы LZO, смотрите здесь: https://github.com/twitter/hadoop-lzo

person Pieterjan    schedule 29.01.2013

Согласно этой теме , MAPREDUCE-830 также необходим для разделения файлов Bzip2 (HADOOP-4012) для заданий MapReduce. MAPREDUCE-830 недоступен на CDH3u5.

person omid    schedule 29.01.2013