code: @Synchronized
      public void start() throws Exception {
  
          /*Start the ZK*/
          if (isInProcZK) {
              zkUrl = "localhost:" + zkPort;
              startLocalZK();
          } else {
              URI zkUri = new URI("temp://" + zkUrl);
              zkHost = zkUri.getHost();
              zkPort = zkUri.getPort();
          }
  
          if (isInProcHDFS) {
              startLocalHDFS();
              hdfsUrl = String.format("hdfs://localhost:%d/", localHdfs.getNameNodePort());
          }
  
          cleanUpZK();
  
          if (isInProcController) {
              startLocalControllers();
          }
  
          if (isInProcSegmentStore) {
              nodeServiceStarter = new ServiceStarter[segmentStoreCount];
              startLocalSegmentStores();
          }
  
      }
docs: Kicks off the cluster creation. right now it can be done only once in lifetime of a process.
  @throws Exception Exception thrown by ZK/HDFS etc.