avro-mapred lib中的AvroKey和AvroValue类

时间:2015-07-09 13:12:14

标签: hadoop mapreduce yarn avro

只是想知道并检查avro-mapred库中提供的AvroKey和AvroValue类是否为Writable? 我打算重用这些对象来节省mapreduce工作中的一些内存。

1 个答案:

答案 0 :(得分:0)

没有。它们只是包装类。您可以通过修改基础数据来节省内存。

GenericData.Record record = new GenericData.Record(schema);
record.put("name", "Bob");
record.put("age", 10);
AvroKey<GenericData.Record> avroKey = new AvroKey<>(record);

context.write(avroKey, NullWritable.get());

record.put("name", "Mike");
record.put("age", 11);
context.write(avroKey, NullWritable.get());

虽然可变对象是bug的常见来源。考虑在重构之前和之后测量内存消耗。