private RecordReader<K, ProtoMessageWritable<V>> getSafeRecordReader(InputSplit split,
      JobConf job, Reporter reporter) throws IOException {
    try {
      return super.getRecordReader(split, job, reporter);
    } catch (EOFException e) {
      // Ignore EOFException, we create an empty reader for this, instead of failing.
      return null;
    }
  }
InputFormat to support reading ProtoWritable stored in a sequence file. You cannot use the
sequence file directly since the createValue method uses default constructor. But ProtoWritable
has a package protected constructor which takes a parser.
By reading the proto class name from job conf which is copied from table properties by Hive this
class manages to give a generic implementation where only can set the proto.class in table
properties and load the file.

It is also enhanced to ignore EOF exception while opening a file, so as to ignore 0 bytes files
in the table. Maybe we should allow this to be configured.

@param <K> K for the sequence file.
@param <V> The proto message type stored in the sequence file. Just to keep java compiler happy.
ql/src/java/org/apache/hadoop/hive/ql/io/protobuf/ProtobufMessageInputFormat.java