[
https://issues.apache.org/jira/browse/HADOOP-7001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
su wenbo updated HADOOP-7001:
-----------------------------
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).
was:
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).
> Allow configuration changes without restarting configured nodes
> ---------------------------------------------------------------
>
> Key: HADOOP-7001
> URL: https://issues.apache.org/jira/browse/HADOOP-7001
> Project: Hadoop Common
> Issue Type: Task
> Components: conf
> Reporter: Patrick Kling
> Assignee: Patrick Kling
> Fix For: 0.23.0
>
> Attachments: HADOOP-7001.2.patch, HADOOP-7001.3.patch,
> HADOOP-7001.4.patch, HADOOP-7001.5.patch, HADOOP-7001.patch,
> reconfigurable.patch
>
>
> 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).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira