Параметр hadoop streaming -file для передачи нескольких файлов

Мне нужно передать несколько файлов в потоковое задание Hadoop. Согласно документу, опция -file также принимает каталог в качестве входных данных. однако, похоже, это не работает. Редуктор выдает ошибку, что файл не найден. Другие варианты - передавать каждый файл отдельно, используя параметр -file, который не очень оптимален, учитывая, что у меня есть сотни файлов. Еще один вариант - заархивировать файлы и передать их как tarball, а затем разархивировать их в редюсере.

Любые другие лучшие варианты?

в идеале я просто хотел бы передать каталог в качестве значения параметра -file, учитывая, что документация Hadoop предполагает, что -file также принимает каталог


person akshit    schedule 27.02.2013    source источник


Ответы (1)


Вы уверены, что имеете в виду, что редуктор выдает ошибку «Файл не найден»? Это больше похоже на проблему, когда пользователь не может прочитать папку результатов, если редуктор выдает ошибку.

-file определенно работает с каталогом, у меня есть потоковое задание Hadoop, которое берет каталог и работает с 6 файлами в папке.

Помните, что путь, указанный для команды -file, является путем в HDFS, поэтому используйте ls, чтобы убедиться, что путь указан правильно.

Наконец, убедитесь, что у вас есть разрешение на чтение каталога с пользователем, которого вы используете для запуска задания. Хотя я точно не знаю, какую ошибку вы получите, если у вас нет разрешения, возможно, это может быть ошибка «файл не найден».

person Yeggstry    schedule 27.02.2013