[ 
https://issues.apache.org/jira/browse/HADOOP-7001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12924755#action_12924755
 ] 

Doug Cutting commented on HADOOP-7001:
--------------------------------------

It doesn't seem unreasonable to me for some limited changes might be permitted 
without restarting.  Restarting a namenode is not a lightweight operation.

If the interface is 'Reconfigurable' then the method might be named 
'reconfigureProp(String,String)', no?

I don't like adding new interfaces that aren't yet used.  So it might be good 
to file issues for at least one the daemons that you expect to implement this 
and at least draft those patches before this is committed.  If we can't agree 
on some concrete usages of this interface within Hadoop, then there's no point 
in adding it.

The servlet should probably return an HTTP error code when reconfiguration 
fails.

A command-line client might be useful.  Perhaps this will be added to, e.g.. 
the existing HDFS admin commands.  But each command-line tool that uses this 
will share client-side HTTP call, handling of error codes, etc.  So perhaps 
that should be encapsulated in a shared utility.


> 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
>            Reporter: Patrick Kling
>            Assignee: Patrick Kling
>         Attachments: 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.
-
You can reply to this email to add a comment to the issue online.

Reply via email to