private Class<? extends Message> loadClass(String protoClass) throws SerDeException {
    if (protoClass == null) {
      throw new SerDeException(PROTO_CLASS + " has to be set.");
    }
    try {
      Class<?> clazz = getClass().getClassLoader().loadClass(protoClass);
      if (!Message.class.isAssignableFrom(clazz)) {
        throw new SerDeException("Invalid class: " + clazz.getName() + " is not type of: " +
            Message.class.getName());
      }
      @SuppressWarnings("unchecked")
      Class<? extends Message> serdeClass = (Class<? extends Message>) clazz;
      return serdeClass;
    } catch (ClassNotFoundException e) {
      throw new SerDeException("Cannot find/load class: " + protoClass, e);
    }
  }
SerDe to convert ProtoWritable messages to Hive formats.
The serde supports the following properties:
<ul>
  <li>proto.class: This is required and specifies the class to be used to read the messages.</li>
  <li>proto.maptypes: This is optional it declares set of protobuf types that have to be
      converted to map objects instead of struct type. It is applied only on a repeated struct
      field. The message should have 2 fields, first is used as key and second is used as value.
  </li>
</ul>
ql/src/java/org/apache/hadoop/hive/ql/io/protobuf/ProtobufSerDe.java