[
https://issues.apache.org/jira/browse/BIGTOP-1689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14372402#comment-14372402
]
Peter Slawski commented on BIGTOP-1689:
---------------------------------------
Great! I'm thinking the following for the program:
- It would be written in Groovy or Java -- I am assuming Groovy is the
preference here.
- The source shouldn't actual live under
{{bigtop-packages/src/common/bigtop-utils/}}. There should be a proper location
for the tools in bigtop-utils. How about adding a new directory under the root
of the project called {{bigtop-utils}}?
- The usage of the program:
{code}
$ configure --file /etc/hadoop/conf/yarn-site.xml --override --options
'{"yarn.nodemanager.resource.cpu-vcores": 8}'
{code}
-* The user supplied options would be passed as JSON via --options. Converting
a hash to shell-escaped JSON can be do in puppet using ruby gems, json and
shellwords: {{hash.to_json.shellescape}}
-* The --override flag would permit merging of additional options. Without it,
merging would fail if there is an existing option specified in the file.
> puppet: Allow merging arbitrary site configuration
> --------------------------------------------------
>
> Key: BIGTOP-1689
> URL: https://issues.apache.org/jira/browse/BIGTOP-1689
> Project: Bigtop
> Issue Type: Improvement
> Components: deployment
> Affects Versions: 0.8.0
> Reporter: Peter Slawski
> Assignee: Peter Slawski
> Fix For: 1.0.0
>
> Attachments: BIGTOP-1689.1.patch
>
>
> Puppet should be flexible in allowing arbitrary configuration name value
> pairs to be merged into a given site.xml file that was generated from a
> template.
> For example, the following could be included in site.yaml which would add a
> configuration entry for hadoop.tmp.dir in core-site.xml:
> {code}
> hadoop::common_hdfs::hadoop_core_site_overrides:
> "hadoop.tmp.dir": "/mnt/var/lib/hadoop/tmp"
> {code}
> This could be implemented as a puppet custom-function taking in the output of
> template:
> {code}
> file {
> "/etc/hadoop/conf/core-site.xml":
> content => merge_site(template('hadoop/core-site.xml'),
> $hadoop_core_site_overrides)
> require => [Package["hadoop"]],
> }
> {code}
> Perhaps another approach would be to have site.xml templates be created from
> a single map of name value pairs. The merge would happen before the file
> content is generated from the template.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)