private Heartbeater startHeartbeat(long initialDelay) throws LockException {
    long heartbeatInterval = getHeartbeatInterval(conf);
    assert heartbeatInterval > 0;
    UserGroupInformation currentUser;
    try {
      currentUser = UserGroupInformation.getCurrentUser();
    } catch (IOException e) {
      throw new LockException("error while getting current user,", e);
    }

    Heartbeater heartbeater = new Heartbeater(this, conf, queryId, currentUser);
    heartbeatTask = startHeartbeat(initialDelay, heartbeatInterval, heartbeater);
    LOG.debug("Started heartbeat with delay/interval = " + initialDelay + "/" + heartbeatInterval +
      " " + TimeUnit.MILLISECONDS + " for query: " + queryId);
    return heartbeater;
  }
Start the heartbeater threadpool and return the task.
@param initialDelay time to delay before first execution, in milliseconds
@return heartbeater
ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java