[
https://issues.apache.org/jira/browse/HADOOP-5708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12700969#action_12700969
]
Doug Cutting commented on HADOOP-5708:
--------------------------------------
> In a nutshell: There is currently no way to write an XML just of my settings
> so that it can be loaded in again.
Sure there is, if you're willing to manipulate the classpath, as you've already
stated you are: just put empty {core,hdfs}mapred}-default.xml files on it.
> Hod itself took advantage of this by writing a hadoop-site.xml file in a
> directory [ ... ]
Those are not defaults, but site-specific configurations.
> When that XML then gets loaded, all those defaults are treated as if they are
> user-overrides, when in fact that are not.
If you've changed your local configuration, overriding some things so that they
differ from the distribution, then your local settings should in general be
seen on the server when it runs your code, no matter which file they come from.
I'm not sure what you're trying to fix. If there is a particular configuration
property that your local settings are overriding on the server, then perhaps
the server's -site config file should be changed to mark that property as
final, so that it is not overridden by user code. Or is there some other
specific problem you are having?
> Configuration should provide a way to write only properties that have been set
> ------------------------------------------------------------------------------
>
> Key: HADOOP-5708
> URL: https://issues.apache.org/jira/browse/HADOOP-5708
> Project: Hadoop Core
> Issue Type: Improvement
> Components: conf
> Affects Versions: 0.19.1
> Reporter: Topher ZiCornell
> Priority: Minor
>
> The Configuration.write and .writeXml methods always output all properties,
> whether they came from a default source, a loaded resource file, or an
> "overlay" set call. There should be a way to write only the properties that
> were set, leaving out the properties that came from a default source.
> Why? Suppose I build a configuration on a machine that is not associated
> with a grid, write it out to XML, then try to load it on a grid gateway. The
> configuration would contain all of the defaults picked up from my non-grid
> machine, and would completely overwrite all the defaults on that grid.
> I propose to add methods to write out only the overlay values in Object and
> XML formats.
> I see two options for implementing this:
> 1) Either completely new methods could be crafted (writeOverlay(DataOutput)
> and writeOverlayXml(OutputStream), or
> 2) The existing write() and writeXml() methods could be adjusted to take an
> additional parameter indicating whether the full properties or overlay
> properties should be written. (Of course, the existing write() and
> writeXml() methods would remain, defaulting to the current behavior.)
> Option 1 has less impact to existing code. Option 2 is a cleaner
> implementation with less code-duplication involved. I would much prefer to
> do option 2.
> Oh, and in case it's not clear, I'm offering to make this change and submit
> it.
> Thoughts?
> . Topher
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.