Предполагая, что ваш входной формат может обрабатывать разделяемые файлы (см. Метод org.apache.hadoop.mapreduce.lib.input.FileInputFormat.isSplitable(JobContext, Path)
), вы можете изменить размер входного разбиения, чтобы обрабатывать меньший файл с помощью нескольких картографических карт (я предполагаю, что вы используете новый API mapreduce упаковка):
Например, если вы используете TextInputFormat
(или большинство форматов ввода, расширяющих FileInputFormat
), вы можете вызывать статические методы util:
FileInputFormat.setMaxInputSplitSize(Job, long)
FileInputFormat.setMinInputSplitSize(Job, long)
Длинным аргументом является размер разбиения в байтах, поэтому просто установите желаемый размер
Под этими методами устанавливаются следующие свойства конфигурации задания:
mapred.min.split.size
mapred.max.split.size
Последнее замечание: некоторые входные форматы могут переопределять метод FileInputFormat.getFormatMinSplitSize()
(по умолчанию 1 байт для FileInputFormat
), так что будьте осторожны, если вы устанавливаете значение, а hadoop появляется для его игнорирования.
И последнее замечание: рассматривали ли вы MRUnit http://incubator.apache.org/mrunit/ для фактического «модульного» тестирования вашего кода MR?