数据序列化:Avro在MapReduce、Hive和Pig中的应用
1. 使用Avro记录进行MapReduce
Avro并非像SequenceFile那样的原生键/值序列化格式,因此在与MapReduce结合使用时,需要进行一些调整。
问题 :希望在MapReduce作业中全程使用Avro,并以面向记录的形式处理输入和输出数据。
解决方案 :扩展 AvroMapper 和 AvroReducer 类来实现MapReduce作业。
1.1 Mapper类实现
public static class Mapper
extends AvroMapper<Stock, Pair<Utf8, Stock>> {
@Override
public void map(Stock stock,
AvroCollector<Pair<Utf8, Stock>> collector,
Reporter reporter) throws IOException {
Pair <Utf8, Stock> out =
new Pair<Utf8, Stock>(new Utf8(stock.getSymbol().toString(),
超级会员免费看
订阅专栏 解锁全文
49

被折叠的 条评论
为什么被折叠?



