首页 文章

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

提问于
浏览
6

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

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

特别:

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

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

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

干杯,戴夫

2 回答

  • 0

    好的,所以我想出来了 .

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

  • 6

    另一种接近方式可能是:mapper的输出不必是AvroKey和AvroValue . 它可以是您的常规输出类型,它们将成为减速器的输入 . 在reducer中我们可以进行Avro转换 . 通过将Outputformat类型设置为Avro .

    问候,sujoy

相关问题