protected synchronized void stop() {
    if (hbaseCluster != null) {
      try {
        hbaseCluster.shutdown();
      } catch (Exception e) {
        e.printStackTrace();
      }
      hbaseCluster = null;
    }
    if (zookeeperCluster != null) {
      try {
        zookeeperCluster.shutdown();
      } catch (Exception e) {
        e.printStackTrace();
      }
      zookeeperCluster = null;
    }
    if (mrCluster != null) {
      try {
        mrCluster.shutdown();
      } catch (Exception e) {
        e.printStackTrace();
      }
      mrCluster = null;
    }
    if (dfsCluster != null) {
      try {
        dfsCluster.getFileSystem().close();
        dfsCluster.shutdown();
      } catch (Exception e) {
        e.printStackTrace();
      }
      dfsCluster = null;
    }
    try {
      FileSystem.closeAll();
    } catch (IOException e) {
      e.printStackTrace();
    }
    started = false;
  }
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