@RestrictedApi(explanation = "Should only be called in tests", link = "",
      allowedOnPath = ".*/src/test/.*")
  public static ServerName waitMetaRegionLocation(ZKWatcher zkw, long timeout)
    throws InterruptedException, NotAllMetaRegionsOnlineException {
    return waitMetaRegionLocation(zkw, RegionInfo.DEFAULT_REPLICA_ID, timeout);
  }
Gets the meta region location, if available, and waits for up to the specified timeout if not
immediately available. Given the zookeeper notification could be delayed, we will try to get
the latest data.
@param zkw     reference to the {@link ZKWatcher} which also contains configuration and
               operation
@param timeout maximum time to wait, in millis
@return server name for server hosting meta region formatted as per {@link ServerName}, or null
        if none available
@throws InterruptedException             if interrupted while waiting
@throws NotAllMetaRegionsOnlineException if a meta or root region is not online
hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/MetaTableLocator.java