Interface Writable

All Known Subinterfaces:
WritableComparable<T>
All Known Implementing Classes:
AbstractDelegationTokenIdentifier, AbstractDelegationTokenSecretManager.DelegationTokenInformation, AbstractMapWritable, AccessControlList, ArrayPrimitiveWritable, ArrayWritable, BloomFilter, BooleanWritable, BytesWritable, ByteWritable, CompositeCrcFileChecksum, CompressedWritable, Configuration, ConfigurationWithLogging, ContentSummary, CountingBloomFilter, Credentials, DelegationKey, DelegationTokenIdentifier, DoubleWritable, DynamicBloomFilter, EnumSetWritable, EtagChecksum, FileChecksum, FileStatus, Filter, FloatWritable, FsCreateModes, FsPermission, FsServerDefaults, FsStatus, GenericWritable, IntWritable, Key, KMSDelegationToken.KMSDelegationTokenIdentifier, LocatedFileStatus, LongWritable, MapWritable, MD5Hash, MD5MD5CRC32CastagnoliFileChecksum, MD5MD5CRC32FileChecksum, MD5MD5CRC32GzipFileChecksum, NullWritable, ObjectWritable, PermissionStatus, ProtobufWrapperLegacy, ProtocolSignature, RetouchedBloomFilter, RpcWritable, RpcWritable.Buffer, SequenceFile.Metadata, ShortWritable, SortedMapWritable, Text, Token, TokenIdentifier, TwoDArrayWritable, UTF8, VersionedWritable, VIntWritable, VLongWritable

@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.