org.apache.hadoop.yarn.server.resourcemanager.recovery
Class FileSystemRMStateStore

java.lang.Object
  extended by org.apache.hadoop.service.AbstractService
      extended by org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStore
          extended by org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore
All Implemented Interfaces:
Closeable, org.apache.hadoop.service.Service

@InterfaceAudience.Private
@InterfaceStability.Unstable
public class FileSystemRMStateStore
extends RMStateStore


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStore
RMStateStore.ApplicationAttemptState, RMStateStore.ApplicationState, RMStateStore.RMDTSecretManagerState, RMStateStore.RMState
 
Nested classes/interfaces inherited from interface org.apache.hadoop.service.Service
org.apache.hadoop.service.Service.STATE
 
Field Summary
protected static String AMRMTOKEN_SECRET_MANAGER_NODE
           
protected static org.apache.hadoop.yarn.server.records.Version CURRENT_VERSION_INFO
           
protected  org.apache.hadoop.fs.FileSystem fs
           
static org.apache.commons.logging.Log LOG
           
protected static String ROOT_DIR_NAME
           
 
Fields inherited from class org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStore
AM_CLIENT_TOKEN_MASTER_KEY_NAME, AM_RM_TOKEN_SERVICE, AMRMTOKEN_SECRET_MANAGER_ROOT, DELEGATION_KEY_PREFIX, DELEGATION_TOKEN_PREFIX, DELEGATION_TOKEN_SEQUENCE_NUMBER_PREFIX, EPOCH_NODE, RM_APP_ROOT, RM_DT_SECRET_MANAGER_ROOT, VERSION_NODE
 
Constructor Summary
FileSystemRMStateStore()
           
 
Method Summary
protected  void closeInternal()
          Derived classes close themselves using this method.
 void deleteStore()
          Derived classes must implement this method to delete the state store
 long getAndIncrementEpoch()
          Get the current epoch of RM and increment the value.
protected  org.apache.hadoop.yarn.server.records.Version getCurrentVersion()
          Get the current version of the underlying state store.
 void initInternal(org.apache.hadoop.conf.Configuration conf)
          Derived classes initialize themselves using this method.
 RMStateStore.RMState loadState()
          Blocking API The derived class must recover state from the store and return a new RMState object populated with that state This must not be called on the dispatcher thread
protected  org.apache.hadoop.yarn.server.records.Version loadVersion()
          Derived class use this method to load the version information from state store.
 void removeApplicationStateInternal(RMStateStore.ApplicationState appState)
          Blocking API Derived classes must implement this method to remove the state of an application and its attempts
 void removeRMDelegationTokenState(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier identifier)
          Blocking API Derived classes must implement this method to remove the state of RMDelegationToken
 void removeRMDTMasterKeyState(org.apache.hadoop.security.token.delegation.DelegationKey masterKey)
          Blocking API Derived classes must implement this method to remove the state of DelegationToken Master Key
protected  void replaceFile(org.apache.hadoop.fs.Path srcPath, org.apache.hadoop.fs.Path dstPath)
           
protected  void startInternal()
          Derived classes start themselves using this method.
 void storeApplicationAttemptStateInternal(org.apache.hadoop.yarn.api.records.ApplicationAttemptId appAttemptId, ApplicationAttemptStateData attemptStateDataPB)
          Blocking API Derived classes must implement this method to store the state of an application attempt
 void storeApplicationStateInternal(org.apache.hadoop.yarn.api.records.ApplicationId appId, ApplicationStateData appStateDataPB)
          Blocking API Derived classes must implement this method to store the state of an application.
 void storeOrUpdateAMRMTokenSecretManagerState(AMRMTokenSecretManagerState amrmTokenSecretManagerState, boolean isUpdate)
          Blocking API Derived classes must implement this method to store or update the state of AMRMToken Master Key
 void storeRMDelegationTokenAndSequenceNumberState(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier identifier, Long renewDate, int latestSequenceNumber)
          Blocking API Derived classes must implement this method to store the state of RMDelegationToken and sequence number
 void storeRMDTMasterKeyState(org.apache.hadoop.security.token.delegation.DelegationKey masterKey)
          Blocking API Derived classes must implement this method to store the state of DelegationToken Master Key
protected  void storeVersion()
          Derived class use this method to store the version information.
 void updateApplicationAttemptStateInternal(org.apache.hadoop.yarn.api.records.ApplicationAttemptId appAttemptId, ApplicationAttemptStateData attemptStateDataPB)
           
 void updateApplicationStateInternal(org.apache.hadoop.yarn.api.records.ApplicationId appId, ApplicationStateData appStateDataPB)
           
protected  void updateFile(org.apache.hadoop.fs.Path outputPath, byte[] data)
           
protected  void updateRMDelegationTokenAndSequenceNumberInternal(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier rmDTIdentifier, Long renewDate, int latestSequenceNumber)
          Blocking API Derived classes must implement this method to update the state of RMDelegationToken and sequence number
 
Methods inherited from class org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStore
checkVersion, getCredentialsFromAppAttempt, handleStoreEvent, notifyStoreOperationFailed, removeApplication, removeRMDelegationToken, removeRMDTMasterKey, serviceInit, serviceStart, serviceStop, setResourceManager, setRMDispatcher, storeNewApplication, storeNewApplicationAttempt, storeRMDelegationTokenAndSequenceNumber, storeRMDTMasterKey, updateApplicationAttemptState, updateApplicationState, updateRMDelegationTokenAndSequenceNumber
 
Methods inherited from class org.apache.hadoop.service.AbstractService
close, getBlockers, getConfig, getFailureCause, getFailureState, getLifecycleHistory, getName, getServiceState, getStartTime, init, isInState, noteFailure, putBlocker, registerGlobalListener, registerServiceListener, removeBlocker, setConfig, start, stop, toString, unregisterGlobalListener, unregisterServiceListener, waitForServiceToStop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LOG

public static final org.apache.commons.logging.Log LOG

ROOT_DIR_NAME

protected static final String ROOT_DIR_NAME
See Also:
Constant Field Values

CURRENT_VERSION_INFO

protected static final org.apache.hadoop.yarn.server.records.Version CURRENT_VERSION_INFO

AMRMTOKEN_SECRET_MANAGER_NODE

protected static final String AMRMTOKEN_SECRET_MANAGER_NODE
See Also:
Constant Field Values

fs

protected org.apache.hadoop.fs.FileSystem fs
Constructor Detail

FileSystemRMStateStore

public FileSystemRMStateStore()
Method Detail

initInternal

public void initInternal(org.apache.hadoop.conf.Configuration conf)
                  throws Exception
Description copied from class: RMStateStore
Derived classes initialize themselves using this method.

Specified by:
initInternal in class RMStateStore
Throws:
Exception

startInternal

protected void startInternal()
                      throws Exception
Description copied from class: RMStateStore
Derived classes start themselves using this method. The base class is started and the event dispatcher is ready to use at this point

Specified by:
startInternal in class RMStateStore
Throws:
Exception

closeInternal

protected void closeInternal()
                      throws Exception
Description copied from class: RMStateStore
Derived classes close themselves using this method. The base class will be closed and the event dispatcher will be shutdown after this

Specified by:
closeInternal in class RMStateStore
Throws:
Exception

getCurrentVersion

protected org.apache.hadoop.yarn.server.records.Version getCurrentVersion()
Description copied from class: RMStateStore
Get the current version of the underlying state store.

Specified by:
getCurrentVersion in class RMStateStore

loadVersion

protected org.apache.hadoop.yarn.server.records.Version loadVersion()
                                                             throws Exception
Description copied from class: RMStateStore
Derived class use this method to load the version information from state store.

Specified by:
loadVersion in class RMStateStore
Throws:
Exception

storeVersion

protected void storeVersion()
                     throws Exception
Description copied from class: RMStateStore
Derived class use this method to store the version information.

Specified by:
storeVersion in class RMStateStore
Throws:
Exception

getAndIncrementEpoch

public long getAndIncrementEpoch()
                          throws Exception
Description copied from class: RMStateStore
Get the current epoch of RM and increment the value.

Specified by:
getAndIncrementEpoch in class RMStateStore
Throws:
Exception

loadState

public RMStateStore.RMState loadState()
                               throws Exception
Description copied from class: RMStateStore
Blocking API The derived class must recover state from the store and return a new RMState object populated with that state This must not be called on the dispatcher thread

Specified by:
loadState in class RMStateStore
Throws:
Exception

storeApplicationStateInternal

public void storeApplicationStateInternal(org.apache.hadoop.yarn.api.records.ApplicationId appId,
                                          ApplicationStateData appStateDataPB)
                                   throws Exception
Description copied from class: RMStateStore
Blocking API Derived classes must implement this method to store the state of an application.

Specified by:
storeApplicationStateInternal in class RMStateStore
Throws:
Exception

updateApplicationStateInternal

public void updateApplicationStateInternal(org.apache.hadoop.yarn.api.records.ApplicationId appId,
                                           ApplicationStateData appStateDataPB)
                                    throws Exception
Specified by:
updateApplicationStateInternal in class RMStateStore
Throws:
Exception

storeApplicationAttemptStateInternal

public void storeApplicationAttemptStateInternal(org.apache.hadoop.yarn.api.records.ApplicationAttemptId appAttemptId,
                                                 ApplicationAttemptStateData attemptStateDataPB)
                                          throws Exception
Description copied from class: RMStateStore
Blocking API Derived classes must implement this method to store the state of an application attempt

Specified by:
storeApplicationAttemptStateInternal in class RMStateStore
Throws:
Exception

updateApplicationAttemptStateInternal

public void updateApplicationAttemptStateInternal(org.apache.hadoop.yarn.api.records.ApplicationAttemptId appAttemptId,
                                                  ApplicationAttemptStateData attemptStateDataPB)
                                           throws Exception
Specified by:
updateApplicationAttemptStateInternal in class RMStateStore
Throws:
Exception

removeApplicationStateInternal

public void removeApplicationStateInternal(RMStateStore.ApplicationState appState)
                                    throws Exception
Description copied from class: RMStateStore
Blocking API Derived classes must implement this method to remove the state of an application and its attempts

Specified by:
removeApplicationStateInternal in class RMStateStore
Throws:
Exception

storeRMDelegationTokenAndSequenceNumberState

public void storeRMDelegationTokenAndSequenceNumberState(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier identifier,
                                                         Long renewDate,
                                                         int latestSequenceNumber)
                                                  throws Exception
Description copied from class: RMStateStore
Blocking API Derived classes must implement this method to store the state of RMDelegationToken and sequence number

Specified by:
storeRMDelegationTokenAndSequenceNumberState in class RMStateStore
Throws:
Exception

removeRMDelegationTokenState

public void removeRMDelegationTokenState(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier identifier)
                                  throws Exception
Description copied from class: RMStateStore
Blocking API Derived classes must implement this method to remove the state of RMDelegationToken

Specified by:
removeRMDelegationTokenState in class RMStateStore
Throws:
Exception

updateRMDelegationTokenAndSequenceNumberInternal

protected void updateRMDelegationTokenAndSequenceNumberInternal(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier rmDTIdentifier,
                                                                Long renewDate,
                                                                int latestSequenceNumber)
                                                         throws Exception
Description copied from class: RMStateStore
Blocking API Derived classes must implement this method to update the state of RMDelegationToken and sequence number

Specified by:
updateRMDelegationTokenAndSequenceNumberInternal in class RMStateStore
Throws:
Exception

storeRMDTMasterKeyState

public void storeRMDTMasterKeyState(org.apache.hadoop.security.token.delegation.DelegationKey masterKey)
                             throws Exception
Description copied from class: RMStateStore
Blocking API Derived classes must implement this method to store the state of DelegationToken Master Key

Specified by:
storeRMDTMasterKeyState in class RMStateStore
Throws:
Exception

removeRMDTMasterKeyState

public void removeRMDTMasterKeyState(org.apache.hadoop.security.token.delegation.DelegationKey masterKey)
                              throws Exception
Description copied from class: RMStateStore
Blocking API Derived classes must implement this method to remove the state of DelegationToken Master Key

Specified by:
removeRMDTMasterKeyState in class RMStateStore
Throws:
Exception

deleteStore

public void deleteStore()
                 throws IOException
Description copied from class: RMStateStore
Derived classes must implement this method to delete the state store

Specified by:
deleteStore in class RMStateStore
Throws:
IOException

updateFile

protected void updateFile(org.apache.hadoop.fs.Path outputPath,
                          byte[] data)
                   throws Exception
Throws:
Exception

replaceFile

protected void replaceFile(org.apache.hadoop.fs.Path srcPath,
                           org.apache.hadoop.fs.Path dstPath)
                    throws Exception
Throws:
Exception

storeOrUpdateAMRMTokenSecretManagerState

public void storeOrUpdateAMRMTokenSecretManagerState(AMRMTokenSecretManagerState amrmTokenSecretManagerState,
                                                     boolean isUpdate)
Description copied from class: RMStateStore
Blocking API Derived classes must implement this method to store or update the state of AMRMToken Master Key

Specified by:
storeOrUpdateAMRMTokenSecretManagerState in class RMStateStore


Copyright © 2014 Apache Software Foundation. All Rights Reserved.