Description
Currently, changing the configuration on a node (e.g., the name node) requires that we restart the node. We propose a change that would allow us to make configuration changes without restarting. Nodes that support configuration changes at run time should implement the following interface:
interface ChangeableConfigured extends Configured {
void changeConfiguration(Configuration newConf) throws ConfigurationChangeException;
}
The contract of changeConfiguration is as follows:
The node will compare newConf to the existing configuration. For each configuration property that is set to a different value than in the current configuration, the node will either adjust its behaviour to conform to the new configuration or throw a ConfigurationChangeException if this change is not possible at run time. If a configuration property is set in the current configuration but is unset in newConf, the node should use its default value for this property. After a successful invocation of changeConfiguration, the behaviour of the configured node should be indistinguishable from the behaviour of a node that was configured with newConf at creation.
It should be easy to change existing nodes to implement this interface. We can start by throwing the exception for all changes and then gradually start supporting more and more changes at run time. (We might even consider replacing Configured with ChangeableConfigured entirely, but I think the proposal above afford greater flexibility).
Attachments
Attachments
Issue Links
- blocks
-
HDFS-1362 Provide volume management functionality for DataNode
- Closed
- duplicates
-
HADOOP-5772 Implement a 'refreshable' configuration system with right access-controls etc.
- Resolved
-
MAPREDUCE-442 Ability to re-configure hadoop daemons online
- Resolved
- is depended upon by
-
HDFS-1477 Support reconfiguring dfs.heartbeat.interval and dfs.namenode.heartbeat.recheck-interval without NN restart
- Resolved
-
HDFS-1362 Provide volume management functionality for DataNode
- Closed
- is related to
-
HADOOP-5670 Hadoop configurations should be read from a distributed system
- Resolved
-
HADOOP-7049 TestReconfiguration should be junit v4
- Closed
- relates to
-
HBASE-3909 Add dynamic config
- Closed