1

AFAK,Hadoop Streaming 只支持文本输入,这意味着数据是按行组织的。但是如果我们想要向后兼容,映射器代码会变得混乱,支持在用 c++ 编写的同一个映射器程序中的不同版本的日志行。

我曾经考虑过avro或protobuf,但似乎在流模式下不​​支持它们,是真的吗?

还有其他解决方案吗?

4

2 回答 2

2

其他输入/输出格式也可以与 Hadoop Streaming 一起使用

为 Hadoop Streaming 添加了Avro支持。请参阅AVRO-808AVRO-830。这个线程也可能有用。

我找不到 ProtoBuf 的 InputFormat 和 OutputFormat 类。因此,它们需要自定义创建

于 2011-11-02T18:05:13.800 回答
2

仅供参考,hadoop 流支持二进制输入/输出。

寻找-io rawbytes选项。

我创建了一个能够使用 SequenceFile 的原型(我认为 - 这是很久以前的事了)。

我放弃了这个想法,因为我必须从流中反序列化 Java Hadoop *Writables。C# BinaryReader 使用 little-endian 编码,而 Java 使用 big-endian。所以映射器变得更加复杂,它应该是。

无论如何,这是可能的。

于 2012-12-12T01:14:33.020 回答