Class FSSchedulerConfigurationStore
java.lang.Object
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.YarnConfigurationStore
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.FSSchedulerConfigurationStore
- All Implemented Interfaces:
AutoCloseable
A filesystem implementation of
YarnConfigurationStore. Offer
configuration storage in FileSystem-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.YarnConfigurationStore
YarnConfigurationStore.LogMutation -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final org.apache.hadoop.yarn.server.records.Versionstatic final org.slf4j.Logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the configuration store, releasing any required resources.voidconfirmMutation(YarnConfigurationStore.LogMutation pendingMutation, boolean isValid) Should be called afterlogMutation.voidformat()Format the persisted configuration.longGet the last updated config version.getConfirmedConfHistory(long fromId) Get a list of confirmed configuration mutations starting from a given id.protected org.apache.hadoop.yarn.server.records.VersionGet schema version of persisted conf store, for detecting compatibility issues when changing conf store schema.protected org.apache.hadoop.yarn.server.records.VersionGet the hard-coded schema version, for comparison against the schema version currently persisted.protected LinkedList<YarnConfigurationStore.LogMutation>getLogs()Get a list of configuration mutations.voidinitialize(org.apache.hadoop.conf.Configuration fsConf, org.apache.hadoop.conf.Configuration vSchedConf, RMContext rmContext) Initialize the configuration store, with schedConf as the initial scheduler configuration.voidlogMutation(YarnConfigurationStore.LogMutation logMutation) Update and persist latest configuration in temp file.org.apache.hadoop.conf.Configurationretrieve()Retrieve the persisted configuration.protected voidPersist the hard-coded schema version to the conf store.Methods inherited from class org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.YarnConfigurationStore
checkVersion
-
Field Details
-
LOG
public static final org.slf4j.Logger LOG -
CURRENT_VERSION_INFO
@VisibleForTesting protected static final org.apache.hadoop.yarn.server.records.Version CURRENT_VERSION_INFO
-
-
Constructor Details
-
FSSchedulerConfigurationStore
public FSSchedulerConfigurationStore()
-
-
Method Details
-
initialize
public void initialize(org.apache.hadoop.conf.Configuration fsConf, org.apache.hadoop.conf.Configuration vSchedConf, RMContext rmContext) throws Exception Description copied from class:YarnConfigurationStoreInitialize the configuration store, with schedConf as the initial scheduler configuration. If a persisted store already exists, use the scheduler configuration stored there, and ignore schedConf.- Specified by:
initializein classYarnConfigurationStore- Parameters:
fsConf- configuration to initialize store withvSchedConf- Initial key-value scheduler configuration to persist.rmContext- RMContext for this configuration store- Throws:
IOException- if initialization failsException
-
logMutation
Update and persist latest configuration in temp file.- Specified by:
logMutationin classYarnConfigurationStore- Parameters:
logMutation- configuration change to be persisted in write ahead log- Throws:
IOException- throw IOE when write temp configuration file fail
-
confirmMutation
public void confirmMutation(YarnConfigurationStore.LogMutation pendingMutation, boolean isValid) throws Exception Description copied from class:YarnConfigurationStoreShould be called afterlogMutation. Gets the pending mutation last logged bylogMutationand marks the mutation as persisted (no longer pending). If isValid is true, merge the mutation with the persisted configuration.- Specified by:
confirmMutationin classYarnConfigurationStore- Parameters:
pendingMutation- the log mutation to applyisValid- if true, finalize temp configuration file if false, remove temp configuration file and rollback- Throws:
Exception- throw IOE when write temp configuration file fail
-
format
Description copied from class:YarnConfigurationStoreFormat the persisted configuration.- Specified by:
formatin classYarnConfigurationStore- Throws:
IOException- on failure to formatException
-
getConfigVersion
Description copied from class:YarnConfigurationStoreGet the last updated config version.- Specified by:
getConfigVersionin classYarnConfigurationStore- Returns:
- Last updated config version.
- Throws:
Exception- On version fetch failure.
-
retrieve
Description copied from class:YarnConfigurationStoreRetrieve the persisted configuration.- Specified by:
retrievein classYarnConfigurationStore- Returns:
- configuration as key-value
- Throws:
IOException- an I/O exception has occurred.
-
getConfirmedConfHistory
Description copied from class:YarnConfigurationStoreGet a list of confirmed configuration mutations starting from a given id.- Specified by:
getConfirmedConfHistoryin classYarnConfigurationStore- Parameters:
fromId- id from which to start getting mutations, inclusive- Returns:
- list of configuration mutations
-
getLogs
Description copied from class:YarnConfigurationStoreGet a list of configuration mutations.- Specified by:
getLogsin classYarnConfigurationStore- Returns:
- list of configuration mutations.
-
getConfStoreVersion
Description copied from class:YarnConfigurationStoreGet schema version of persisted conf store, for detecting compatibility issues when changing conf store schema.- Specified by:
getConfStoreVersionin classYarnConfigurationStore- Returns:
- Schema version currently used by the persisted configuration store.
- Throws:
Exception- On version fetch failure
-
storeVersion
Description copied from class:YarnConfigurationStorePersist the hard-coded schema version to the conf store.- Specified by:
storeVersionin classYarnConfigurationStore- Throws:
Exception- On storage failure
-
getCurrentVersion
protected org.apache.hadoop.yarn.server.records.Version getCurrentVersion()Description copied from class:YarnConfigurationStoreGet the hard-coded schema version, for comparison against the schema version currently persisted.- Specified by:
getCurrentVersionin classYarnConfigurationStore- Returns:
- Current hard-coded schema version
-
close
Description copied from class:YarnConfigurationStoreCloses the configuration store, releasing any required resources.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein classYarnConfigurationStore- Throws:
IOException- on failure to close
-