【发布时间】:2015-07-09 13:12:14
【问题描述】:
只是想知道并检查 avro-mapred 库中提供的 AvroKey 和 AvroValue 类是否是可写的? 我打算重用这些对象以在 mapreduce 作业中节省一些内存。
【问题讨论】:
标签: hadoop mapreduce hadoop-yarn avro
只是想知道并检查 avro-mapred 库中提供的 AvroKey 和 AvroValue 类是否是可写的? 我打算重用这些对象以在 mapreduce 作业中节省一些内存。
【问题讨论】:
标签: hadoop mapreduce hadoop-yarn avro
没有。它们只是包装类。您可以通过修改基础数据来节省内存。
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());
虽然可变对象是常见的错误来源。考虑在重构前后测量内存消耗。
【讨论】: