@Override
    public void run() {
      LOG.debug("Client zk updater for znode {} started", znode);
      while (!server.isStopped()) {
        try {
          byte[] data = zkData.get();
          if (data != null) {
            setDataForClientZkUntilSuccess(znode, data);
          } else {
            if (zkData.isDeleted()) {
              deleteDataForClientZkUntilSuccess(znode);
              break;
            }
          }
        } catch (InterruptedException e) {
          LOG.debug("Interrupted while checking whether need to update meta location to client zk");
          Thread.currentThread().interrupt();
          break;
        }
      }
      LOG.debug("Client zk updater for znode {} stopped", znode);
    }
Thread to synchronize znode data to client ZK cluster
hbase-server/src/main/java/org/apache/hadoop/hbase/master/zksyncer/ClientZKSyncer.java