Обратная совместимость потоковой передачи Hadoop - PullRequest
1 голос
/ 02 ноября 2011

AFAK, Hadoop Streaming поддерживает только ввод текста, что означает, что данные организованы по линиям. но код mapper станет грязным, если мы захотим обратную совместимость, поддерживая разные версии строк журнала в одной и той же программе mapper, написанной на c ++.

Раньше я рассматривал avro или protobuf, но кажется, что они не поддерживаются в потоковом режиме, это правда?

и есть ли другое решение?

Ответы [ 2 ]

2 голосов
/ 12 декабря 2012

Только для информации, потоковая передача hadoop поддерживает двоичный ввод / вывод.

Найдите параметр -io rawbytes .

Я создал прототип, который мог использовать SequenceFile (я думаю - это было давно).

Я отказался от этой идеи, потому что мне пришлось десериализовать Java Hadoop * Writables из потока. И C # BinaryReader использует кодирование с прямым порядком байтов, в то время как Java использует порядок с прямым порядком байтов. Итак, картограф стал сложнее, чем должно быть.

В любом случае, это возможно.

2 голосов
/ 02 ноября 2011

Также могут использоваться используемые вместе с потоковой передачей Hadoop.

Avro добавлена ​​поддержка для потоковой передачи Hadoop.См. AVRO-808 & AVRO-830 .Также этот Thread может быть полезен.

Я не смог найти классы InputFormat и OutputFormat для ProtoBuf.Таким образом, они должны быть на заказ созданы .

...