Package org.apache.hadoop.io
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 TypeMethodDescriptionvoidreadFields(DataInput in) Deserialize the fields of this object fromin.voidwrite(DataOutput out) Serialize the fields of this object toout.
-
Method Details
-
write
Serialize the fields of this object toout.- Parameters:
out-DataOuputto serialize this object into.- Throws:
IOException- any other problem for write.
-
readFields
Deserialize the fields of this object fromin.For efficiency, implementations should attempt to re-use storage in the existing object where possible.
- Parameters:
in-DataInputto deseriablize this object from.- Throws:
IOException- any other problem for readFields.
-