Interface Writable

All Known Subinterfaces:
Counter, CounterGroup, CounterGroupBase<T>, InputSplit, InputSplitWithLocationInfo, WritableComparable<T>
All Known Implementing Classes:
AbstractCounters, AbstractDelegationTokenIdentifier, AbstractMapWritable, AccessControlList, AggregatedLogFormat.LogKey, AMRMTokenIdentifier, ArrayPrimitiveWritable, ArrayWritable, BloomFilter, BooleanWritable, BytesWritable, ByteWritable, ClientToAMTokenIdentifier, ClusterMetrics, ClusterStatus, CombineFileSplit, CombineFileSplit, CompositeInputSplit, CompositeInputSplit, CompressedWritable, Configuration, ContainerTokenIdentifier, ContentSummary, Counters, Counters, Counters.Counter, Counters.Group, CountingBloomFilter, Credentials, DirEntry, DoubleWritable, DynamicBloomFilter, EnumSetWritable, FileChecksum, FileSplit, FileSplit, FileStatus, org.apache.hadoop.util.bloom.Filter, FloatWritable, FsCreateModes, FsPermission, FsServerDefaults, FsStatus, GenericWritable, ID, ID, IntWritable, JobConf, JobID, JobID, JobQueueInfo, JobStatus, JobStatus, LocatedFileStatus, LongWritable, MapWritable, MD5Hash, MultiFileSplit, NMTokenIdentifier, NullWritable, ObjectWritable, QueueAclsInfo, QueueInfo, Record, RetouchedBloomFilter, RMDelegationTokenIdentifier, ShortWritable, SortedMapWritable, TaskAttemptID, TaskAttemptID, TaskCompletionEvent, TaskCompletionEvent, TaskID, TaskID, TaskReport, org.apache.hadoop.mapreduce.TaskReport, TaskTrackerInfo, Text, TimelineDelegationTokenIdentifier, Token, TokenIdentifier, TupleWritable, TupleWritable, TwoDArrayWritable, VersionedWritable, VIntWritable, VLongWritable, YarnConfiguration, org.apache.hadoop.yarn.security.client.YARNDelegationTokenIdentifier

@Public @Stable public interface Writable
A serializable object which implements a simple, efficient, serialization protocol, based on DataInput and DataOutput.

Any key or value type in the Hadoop Map-Reduce framework implements this interface.

Implementations typically implement a static read(DataInput) method which constructs a new instance, calls readFields(DataInput) and returns the instance.

Example:

     public class MyWritable implements Writable {
       // Some data
       private int counter;
       private long timestamp;

       // Default constructor to allow (de)serialization
       MyWritable() { }

       public void write(DataOutput out) throws IOException {
         out.writeInt(counter);
         out.writeLong(timestamp);
       }

       public void readFields(DataInput in) throws IOException {
         counter = in.readInt();
         timestamp = in.readLong();
       }

       public static MyWritable read(DataInput in) throws IOException {
         MyWritable w = new MyWritable();
         w.readFields(in);
         return w;
       }
     }
 
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Deserialize the fields of this object from in.
    void
    Serialize the fields of this object to out.
  • Method Details

    • write

      void write(DataOutput out) throws IOException
      Serialize the fields of this object to out.
      Parameters:
      out - DataOuput to serialize this object into.
      Throws:
      IOException - any other problem for write.
    • readFields

      void readFields(DataInput in) throws IOException
      Deserialize the fields of this object from in.

      For efficiency, implementations should attempt to re-use storage in the existing object where possible.

      Parameters:
      in - DataInput to deseriablize this object from.
      Throws:
      IOException - any other problem for readFields.