具有纯文本输入和avro输出的mapreduce作业

Dav*_*ave 6 hadoop avro

我对将Avro与map reduce一起使用感到困惑,并且无法找到好的教程.

当输入和输出都是Avro数据文件时,像AvroJob和AvroMapper这样的类似乎可以解决问题.当你的输入只是纯文本时呢?

特别:

我的映射器将LongWritable键和Text值作为输入.它会发出文本键和MyAvroRecord值.

我的reducer使用Text键和MyAvroRecords的Iterator作为输入,并发出Text键和MyAvroRecord值.

如何获得将这些Text键和MyAvroRecord值写入文件的OutputFormat?

干杯,戴夫

Dav*_*ave 6

好的,所以我想出来了.

我需要一个生成AvroKey键和AvroValue值的映射器,而不是输出Text键和MyAvroRecord值的映射器.这能够将其结果直接提供给AvroReducer,我可以使用AvroJob.setOutputSchema()来处理输出(我根本不需要实现OutputFormat).