2009-05-20 2 views
6

Есть ли способ управлять выходными именами файлов задания Hadoop Streaming? В частности, я хотел бы, чтобы содержимое и имя выходных файлов моей работы были организованы с помощью кетных выходов редуктора - каждый файл будет содержать только значения для одного ключа, и его имя будет ключевым.Как управлять именем выходных файлов и содержимым потоковой передачи Hadoop?

Обновление: Только что нашел ответ - Использование класса Java, который происходит из MultipleOutputFormat, поскольку формат выходных данных позволяет управлять именами выходных файлов. http://hadoop.apache.org/core/docs/current/api/org/apache/hadoop/mapred/lib/MultipleOutputFormat.html

Я не видел каких-либо образцов для этого там ... Можно ли указать на образец Hadoop Streaming, который использует формат пользовательского вывода Java класса?

ответ

8

Использование класса Java, который происходит из MultipleOutputFormat, поскольку формат выходных данных позволяет управлять именами выходных файлов. http://hadoop.apache.org/core/docs/current/api/org/apache/hadoop/mapred/lib/MultipleOutputFormat.html

При использовании Hadoop Streaming, так как только один JAR поддерживается вы на самом деле придется раскошелиться потоковую банку и поставить свои новые классы выходного формата в нем для потоковой работы, чтобы иметь возможность ссылаться на него ...

EDIT: в версии 0.20.2 от Hadoop этого класса является устаревшим, и теперь вы должны использовать: http://hadoop.apache.org/docs/mapreduce/current/api/org/apache/hadoop/mapreduce/lib/output/MultipleOutputs.html

+1

Неработающая ссылка на новые документы –

-1

В общем, Hadoop хотел бы, чтобы весь каталог представлял собой выходной файл, а не отдельный файл. Невозможно напрямую контролировать имя файла, используя потоковые или обычные задания Java.

Однако ничто не мешает вам выполнять это разделение и переименовывать себя после завершения работы. Вы можете $ HADOOP dfs -cat path/to/your/output/directory/part- * и передавать его в свой собственный скрипт, который разбивает содержимое на клавиши и записывает их в новые файлы.

+0

в общем Thats не подход вы хотите взять. –

Смежные вопросы