@Override
  public synchronized void startThreads() throws IOException {
    try {
      // updateCurrentKey needs to be called to initialize the master key
      // (there should be a null check added in the future in rollMasterKey)
      // updateCurrentKey();
      Method m = AbstractDelegationTokenSecretManager.class.getDeclaredMethod("updateCurrentKey");
      m.setAccessible(true);
      m.invoke(this);
    } catch (Exception e) {
      throw new IOException("Failed to initialize master key", e);
    }
    running = true;
    tokenRemoverThread = new Daemon(new ExpiredTokenRemover());
    tokenRemoverThread.start();
  }
Synchronize master key updates / sequence generation for multiple nodes.
NOTE: {@link AbstractDelegationTokenSecretManager} keeps currentKey private, so we need
to utilize this "hook" to manipulate the key through the object reference.
This .20S workaround should cease to exist when Hadoop supports token store.
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/security/TokenStoreDelegationTokenSecretManager.java