@Override
    public synchronized void set(Hive hiveObj) {
      Hive currentHive = this.get();
      if (currentHive != hiveObj) {
        // Remove/close current thread-local Hive object before overwriting with new Hive object.
        remove();
        super.set(hiveObj);
      }
    }
This class has functions that implement meta data/DDL operations using calls
to the metastore.
It has a metastore client instance it uses to communicate with the metastore.

It is a thread local variable, and the instances is accessed using static
get methods in this class.
ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java