protected synchronized void start() {
    try {
      if (!started) {
        FileUtil.fullyDelete(workDir);
        if (miniMRClusterEnabled) {
          setupMRCluster();
        }
        if (miniZookeeperClusterEnabled || miniHBaseClusterEnabled) {
          miniZookeeperClusterEnabled = true;
          setupZookeeper();
        }
        if (miniHBaseClusterEnabled) {
          setupHBaseCluster();
        }
        if (miniHiveMetastoreEnabled) {
          setUpMetastore();
        }
      }
    } catch (Exception e) {
      throw new IllegalStateException("Failed to setup cluster", e);
    }
  }
create a cluster instance using a builder which will expose configurable options
@param workDir working directory ManyMiniCluster will use for all of it's *Minicluster instances
@return a Builder instance
itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/hbase/ManyMiniCluster.java