publicabstractclassOutputFormat<K, V>{/**
* Get the {@link RecordWriter} for the given task.
*
* @param context the information about the current task.
* @return a {@link RecordWriter} to write the output for the job.
* @throws IOException
*/publicabstract RecordWriter<K, V>getRecordWriter(TaskAttemptContext context
)throws IOException, InterruptedException;/**
* Check for validity of the output-specification for the job.
*
* <p>This is to validate the output specification for the job when it is
* a job is submitted. Typically checks that it does not already exist,
* throwing an exception when it already exists, so that output is not
* overwritten.</p>
*
* @param context information about the job
* @throws IOException when output should not be attempted
*/publicabstractvoidcheckOutputSpecs(JobContext context
)throws IOException,
InterruptedException;/**
* Get the output committer for this output format. This is responsible
* for ensuring the output is committed correctly.
* @param context the task context
* @return an output committer
* @throws IOException
* @throws InterruptedException
*/publicabstract
OutputCommitter getOutputCommitter(TaskAttemptContext context
)throws IOException, InterruptedException;}