@Override public InputSplit[] getSplits(final JobConf jobConf, final int numSplits) throws IOException {
    synchronized (HBASE_TABLE_MONITOR) {
      final UserGroupInformation ugi = UserGroupInformation.getCurrentUser();
      if (ugi == null) {
        return getSplitsInternal(jobConf, numSplits);
      }

      try {
        return ugi.doAs(new PrivilegedExceptionAction<InputSplit[]>() {
          @Override public InputSplit[] run() throws IOException {
            return getSplitsInternal(jobConf, numSplits);
          }
        });
      } catch (InterruptedException e) {
        throw new IOException(e);
      }
    }
  }
Instantiates a new predicate analyzer suitable for
determining how to push a filter down into the HBase scan,
based on the rules for what kinds of pushdown we currently support.

@param keyColumnName name of the Hive column mapped to the HBase row key

@return preconfigured predicate analyzer
hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java