AFAK,Hadoop Streaming只支持文本输入,这意味着数据按行组织。但是如果我们想要向后兼容,映射器代码将变得混乱,在C++中编写的同一个映射器程序中支持不同版本的日志行。Hadoop Streaming的向后兼容性
我曾经考虑avro或protobuf,但它似乎不支持流模式,是这样吗?
是否还有其他解决方案?
AFAK,Hadoop Streaming只支持文本输入,这意味着数据按行组织。但是如果我们想要向后兼容,映射器代码将变得混乱,在C++中编写的同一个映射器程序中支持不同版本的日志行。Hadoop Streaming的向后兼容性
我曾经考虑avro或protobuf,但它似乎不支持流模式,是这样吗?
是否还有其他解决方案?
仅供参考,hadoop streaming支持二进制输入/输出。
查找-io rawbytes选项。
我创建了一个能够使用SequenceFile的原型(我认为 - 很久以前)。
我放弃了这个想法,因为我不得不从流中反序列化Java Hadoop * Writable。而C#BinaryReader 使用little-endian编码,而Java使用big-endian。所以mapper变得更加复杂了。
无论如何,这是可能的。