【问题标题】:AvroKey and AvroValue classes in avro-mapred libavro-mapred 库中的 AvroKey 和 AvroValue 类
【发布时间】:2015-07-09 13:12:14
【问题描述】:

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

【问题讨论】:

    标签: hadoop mapreduce hadoop-yarn avro


    【解决方案1】:

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

    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());
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-21
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      相关资源
      最近更新 更多