Я пытаюсь запустить задание MapReduce в своем кластере, которое работает только с определенным расширением файла. У нас есть куча разнородных данных, которые находятся в кластере, и для этого конкретного задания я хочу выполнить только .jpg. Есть ли способ сделать это, не ограничивая его в картографе. Кажется, что это должно быть легко сделать, когда вы выполняете задание. Я думаю что-то вроде Hadoop fs JobName /users/myuser/data/*.jpg /users/myuser/output.
Ограничить Hadoop MapReduce определенным расширением файла
Ответы (1)
Ваш пример должен работать так, как написано, но вам нужно проверить формат ввода, который вы вызываете методом setInputPaths(Job, String), так как это разрешит строку glob "/users/myuser/data/*.jpg " в отдельные файлы jpg в /users/myuser/data.
person
Chris White
schedule
01.05.2012
Вы правы, есть ли способ сделать это рекурсивным? Я хочу запустить его из корня HDFS.
- person Matt E; 01.05.2012
Похоже, это распространенная проблема, и ее исправили. Вот ссылка ссылка. Спасибо за ответ на мой оригинальный вопрос!
- person Matt E; 01.05.2012
Если у вас есть фиксированное количество каталогов, вы можете использовать рекурсию:
/users/myuser/data/*/*/*.jpg
будет соответствовать всем файлам jpg глубиной 2 каталога из /users/myuser/data/
. Однако, как вы указываете, глобусирование переменной глубины (например, /users/myuser/data/**/*.jpg
) еще не поддерживается.
- person Chris White; 01.05.2012