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

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

@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class RMStateStore
extends org.apache.hadoop.service.AbstractService


Nested Class Summary
static class RMStateStore.ApplicationAttemptState
          State of an application attempt
static class RMStateStore.ApplicationState
          State of an application application
static class RMStateStore.RMDTSecretManagerState
           
static class RMStateStore.RMState
          State of the ResourceManager
 
Nested classes/interfaces inherited from interface org.apache.hadoop.service.Service
org.apache.hadoop.service.Service.STATE
 
Field Summary
static org.apache.hadoop.io.Text AM_CLIENT_TOKEN_MASTER_KEY_NAME
           
static org.apache.hadoop.io.Text AM_RM_TOKEN_SERVICE
           
static org.apache.commons.logging.Log LOG
           
 
Constructor Summary
RMStateStore()
           
 
Method Summary
protected abstract  void closeInternal()
          Derived classes close themselves using this method.
protected abstract  void initInternal(org.apache.hadoop.conf.Configuration conf)
          Derived classes initialize themselves using this method.
abstract  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
 void removeApplication(RMApp app)
          Non-blocking API ResourceManager services call this to remove an application from the state store This does not block the dispatcher threads There is no notification of completion for this operation.
 void removeApplication(RMStateStore.ApplicationState appState)
           
protected abstract  void removeApplicationState(RMStateStore.ApplicationState appState)
          Blocking API Derived classes must implement this method to remove the state of an application and its attempts
 void removeRMDelegationToken(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier rmDTIdentifier, int sequenceNumber)
          RMDTSecretManager call this to remove the state of a delegation token
protected abstract  void removeRMDelegationTokenState(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier rmDTIdentifier)
          Blocking API Derived classes must implement this method to remove the state of RMDelegationToken
 void removeRMDTMasterKey(org.apache.hadoop.security.token.delegation.DelegationKey delegationKey)
          RMDTSecretManager call this to remove the state of a master key
protected abstract  void removeRMDTMasterKeyState(org.apache.hadoop.security.token.delegation.DelegationKey delegationKey)
          Blocking API Derived classes must implement this method to remove the state of DelegationToken Master Key
 void serviceInit(org.apache.hadoop.conf.Configuration conf)
           
protected  void serviceStart()
           
 void serviceStop()
           
 void setRMDispatcher(org.apache.hadoop.yarn.event.Dispatcher dispatcher)
          Dispatcher used to send state operation completion events to ResourceManager services
protected abstract  void startInternal()
          Derived classes start themselves using this method.
 void storeApplication(RMApp app)
          Non-Blocking API ResourceManager services use this to store the application's state This does not block the dispatcher threads RMAppStoredEvent will be sent on completion to notify the RMApp
 void storeApplicationAttempt(RMAppAttempt appAttempt)
           
protected abstract  void storeApplicationAttemptState(String attemptId, ApplicationAttemptStateDataPBImpl attemptStateData)
          Blocking API Derived classes must implement this method to store the state of an application attempt
protected abstract  void storeApplicationState(String appId, ApplicationStateDataPBImpl appStateData)
          Blocking API Derived classes must implement this method to store the state of an application.
 void storeRMDelegationTokenAndSequenceNumber(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier rmDTIdentifier, Long renewDate, int latestSequenceNumber)
          RMDTSecretManager call this to store the state of a delegation token and sequence number
protected abstract  void storeRMDelegationTokenAndSequenceNumberState(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier rmDTIdentifier, Long renewDate, int latestSequenceNumber)
          Blocking API Derived classes must implement this method to store the state of RMDelegationToken and sequence number
 void storeRMDTMasterKey(org.apache.hadoop.security.token.delegation.DelegationKey delegationKey)
          RMDTSecretManager call this to store the state of a master key
protected abstract  void storeRMDTMasterKeyState(org.apache.hadoop.security.token.delegation.DelegationKey delegationKey)
          Blocking API Derived classes must implement this method to store the state of DelegationToken Master Key
 
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

AM_RM_TOKEN_SERVICE

public static final org.apache.hadoop.io.Text AM_RM_TOKEN_SERVICE

AM_CLIENT_TOKEN_MASTER_KEY_NAME

public static final org.apache.hadoop.io.Text AM_CLIENT_TOKEN_MASTER_KEY_NAME
Constructor Detail

RMStateStore

public RMStateStore()
Method Detail

setRMDispatcher

public void setRMDispatcher(org.apache.hadoop.yarn.event.Dispatcher dispatcher)
Dispatcher used to send state operation completion events to ResourceManager services


serviceInit

public void serviceInit(org.apache.hadoop.conf.Configuration conf)
                 throws Exception
Overrides:
serviceInit in class org.apache.hadoop.service.AbstractService
Throws:
Exception

serviceStart

protected void serviceStart()
                     throws Exception
Overrides:
serviceStart in class org.apache.hadoop.service.AbstractService
Throws:
Exception

initInternal

protected abstract void initInternal(org.apache.hadoop.conf.Configuration conf)
                              throws Exception
Derived classes initialize themselves using this method.

Throws:
Exception

startInternal

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

Throws:
Exception

serviceStop

public void serviceStop()
                 throws Exception
Overrides:
serviceStop in class org.apache.hadoop.service.AbstractService
Throws:
Exception

closeInternal

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

Throws:
Exception

loadState

public abstract RMStateStore.RMState loadState()
                                        throws Exception
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

Throws:
Exception

storeApplication

public void storeApplication(RMApp app)
Non-Blocking API ResourceManager services use this to store the application's state This does not block the dispatcher threads RMAppStoredEvent will be sent on completion to notify the RMApp


storeApplicationState

protected abstract void storeApplicationState(String appId,
                                              ApplicationStateDataPBImpl appStateData)
                                       throws Exception
Blocking API Derived classes must implement this method to store the state of an application.

Throws:
Exception

storeApplicationAttempt

public void storeApplicationAttempt(RMAppAttempt appAttempt)

storeApplicationAttemptState

protected abstract void storeApplicationAttemptState(String attemptId,
                                                     ApplicationAttemptStateDataPBImpl attemptStateData)
                                              throws Exception
Blocking API Derived classes must implement this method to store the state of an application attempt

Throws:
Exception

storeRMDelegationTokenAndSequenceNumber

public void storeRMDelegationTokenAndSequenceNumber(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier rmDTIdentifier,
                                                    Long renewDate,
                                                    int latestSequenceNumber)
                                             throws Exception
RMDTSecretManager call this to store the state of a delegation token and sequence number

Throws:
Exception

storeRMDelegationTokenAndSequenceNumberState

protected abstract void storeRMDelegationTokenAndSequenceNumberState(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier rmDTIdentifier,
                                                                     Long renewDate,
                                                                     int latestSequenceNumber)
                                                              throws Exception
Blocking API Derived classes must implement this method to store the state of RMDelegationToken and sequence number

Throws:
Exception

removeRMDelegationToken

public void removeRMDelegationToken(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier rmDTIdentifier,
                                    int sequenceNumber)
                             throws Exception
RMDTSecretManager call this to remove the state of a delegation token

Throws:
Exception

removeRMDelegationTokenState

protected abstract void removeRMDelegationTokenState(org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier rmDTIdentifier)
                                              throws Exception
Blocking API Derived classes must implement this method to remove the state of RMDelegationToken

Throws:
Exception

storeRMDTMasterKey

public void storeRMDTMasterKey(org.apache.hadoop.security.token.delegation.DelegationKey delegationKey)
                        throws Exception
RMDTSecretManager call this to store the state of a master key

Throws:
Exception

storeRMDTMasterKeyState

protected abstract void storeRMDTMasterKeyState(org.apache.hadoop.security.token.delegation.DelegationKey delegationKey)
                                         throws Exception
Blocking API Derived classes must implement this method to store the state of DelegationToken Master Key

Throws:
Exception

removeRMDTMasterKey

public void removeRMDTMasterKey(org.apache.hadoop.security.token.delegation.DelegationKey delegationKey)
                         throws Exception
RMDTSecretManager call this to remove the state of a master key

Throws:
Exception

removeRMDTMasterKeyState

protected abstract void removeRMDTMasterKeyState(org.apache.hadoop.security.token.delegation.DelegationKey delegationKey)
                                          throws Exception
Blocking API Derived classes must implement this method to remove the state of DelegationToken Master Key

Throws:
Exception

removeApplication

public void removeApplication(RMApp app)
Non-blocking API ResourceManager services call this to remove an application from the state store This does not block the dispatcher threads There is no notification of completion for this operation.


removeApplication

public void removeApplication(RMStateStore.ApplicationState appState)

removeApplicationState

protected abstract void removeApplicationState(RMStateStore.ApplicationState appState)
                                        throws Exception
Blocking API Derived classes must implement this method to remove the state of an application and its attempts

Throws:
Exception


Copyright © 2014 Apache Software Foundation. All Rights Reserved.