входной формат Hadoop для потоковой передачи Hadoop. Формат ввода Wikihadoop

Интересно, есть ли какие-либо различия между InputFormats для потоковой передачи Hadoop и Hadoop. Работают ли входные форматы для потоковой передачи Hadoop также для Hadoop и наоборот? Я спрашиваю об этом, потому что нашел специальный формат ввода для файлов дампа википедии, формат ввода wikihadoop. А там написано, что это Input Format для потоковой передачи хаупов? Почему только для потоковой передачи Hadoop? А не для хаупа?

Лучшие


person user2426139    schedule 14.06.2013    source источник


Ответы (3)


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

Дерево наследования для StreamWikiDumpInputFormat это...

* InputFormat
  * FileInputFormat
    * KeyValueTextInputFormat
      * StreamWikiDumpInputFormat

И поскольку он в конечном итоге реализует InputFormat, его можно использовать в обычных заданиях MapReduce.

person Mike Park    schedule 14.06.2013
comment
но почему это сказано на их вики-странице: это программное обеспечение предоставляет InputFormat для интерфейса потоковой передачи Hadoop, который обрабатывает XML-дампы Wikipedia bzip2 в потоковом режиме. - person user2426139; 14.06.2013
comment
Я не вижу никакого намека на то, что это только потоковое. Я просто вижу InputFormat, который был написан кем-то, кто интересуется только потоковой частью Hadoop, и поэтому он описывает его, используя термины потоковой передачи. - person Mike Park; 14.06.2013
comment
Если я ошибаюсь, вы, вероятно, узнаете, как только попробуете использовать его в первый раз. - person Mike Park; 14.06.2013

Нет.. Тип задания MR (потоковая передача или Java) не является критерием для использования (или разработки) InputFormat. InputFormat — это просто InputFormat, который будет работать как для потоковой передачи, так и для заданий Java MR. Это тип данных, которые вы собираетесь обрабатывать, на основе которых вы используете (или разрабатываете) InputFormat. Hadoop изначально предоставляет различные типы InputFormat, которых обычно достаточно для удовлетворения ваших потребностей. Но иногда ваши данные находятся в таком состоянии, что ни один из этих InputFormat не может их обработать.

Сказав это, по-прежнему можно обрабатывать эти данные с помощью MR, и именно здесь вы в конечном итоге пишете свой собственный формат ввода, как тот, который вы указали выше.

И я не знаю, почему они так много внимания уделяют потоковой передаче Hadoop. Это просто класс Java, который делает все, что должен делать InputFormat, и реализует все, что позволяет ему это делать. @climbage сделал очень правильное замечание по этому поводу. Таким образом, его можно использовать с любым заданием MR, потоковой передачей или java.

person Tariq    schedule 15.06.2013

Нет никакой разницы между обычными входными форматами и форматами, разработанными для потоковой передачи Hadoop.

Когда автор говорит, что формат разработан для Hadoop Streaming, единственное, что она имеет в виду, это то, что ее формат ввода создает объекты с осмысленными методами toString. Вот и все.

Например, когда я разрабатываю входной формат для использования в Hadoop Streaming, я стараюсь избегать BinaryWritable и вместо этого использую Text.

person Alexandr Priymak    schedule 18.01.2016