[ 
https://issues.apache.org/jira/browse/DRILL-4591?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul Rogers updated DRILL-4591:
-------------------------------
    Description: 
Today Drill provides the drill-override.conf file to set Drill properties, and 
the drill-env.sh file to provide custom launch properties. Today, most users 
seem to have a copy of DRILL_HOME per node, and thus they copy these two files 
per-node. The result is that the two files act as both the overall "site" 
configuration (for all nodes) and the "per-node" configuration for that one 
node.

In addition, some distributions of Drill (such as MapR), modify the "user" 
config files with settings for that distribution. Now, the same files hold 
settings for the distribution, site and node.

The approach works, but is awkward. Ideally, provide the option to have three 
sets of files: for the distribution, site, and node.

The proposal is to extend configuration to provide additional levels:

* Drill defaults (drill default and module conf files, code in drill-config.sh)
* Distribution settings (special JVM settings, say)
* Site settings (standard log or spill file locations)
* Node settings
* Launch settings (environment variables, -Dname=value options)

The improvement becomes more important if a user employs NFS, MapR FS or YARN 
to automatically deploy the site-wide files. In that case, the site files 
cannot also act as per-node files.

The improvement also simplifies upgrades. Today, users must copy customizations 
from and old to a new install. With the revision, Drill files are complely 
separated from user files, making upgrades (of software) easier.

For backward compatibility, the site and node directories are optional and 
ignored if the environment variables are not set. The site and node config 
files should be optional: skip them if they do not exist.


  was:
Today Drill provides the drill-override.conf file to set Drill properties, and 
the drill-env.sh file to provide custom launch properties. Today, most users 
seem to have a copy of DRILL_HOME per node, and thus they copy these two files 
per-node. The result is that the two files act as both the overall "site" 
configuration (for all nodes) and the "per-node" configuration for that one 
node.

In addition, some distributions of Drill (such as MapR), modify the "user" 
config files with settings for that distribution. Now, the same files hold 
settings for the distribution, site and node.

The approach works, but is awkward. Ideally, provide the option to have three 
sets of files: for the distribution, site, and node.

Let's assume each set resides in its own directory. (Merging the three sets 
into a single directory would simply shift the sync problems from files to 
directories.)

* DRILL_HOME/conf: Distribution files
* DRILL_SITE_DIR/conf: Site-wide files
* DRILL_NODE_DIR/conf: Node-specific files

Each directory might contain its own drill-override.conf, drill-env.sh files. 
(The idea extends to site jar files as well by adding a jars directory under 
DRILL_SITE_DIR.)

Configuration now provides additional levels:

* Drill defaults (drill default and module conf files, code in drill-config.sh)
* Distribution settings (special JVM settings, say)
* Site settings (standard log or spill file locations)
* Node settings
* Launch settings (environment variables, -Dname=value options)

The improvement becomes more important if a user employs NFS, MapR FS or YARN 
to automatically deploy the site-wide files. In that case, the site files 
cannot also act as per-node files.

The improvement also simplifies upgrades. Today, users must copy customizations 
from and old to a new install. With the new system, Drill files are complely 
separated from user files, making upgrades (of software) trivial.

Note that the current version of Drill does allow users to put config files in 
/etc/drill/conf, but that location replaces $DRILL_HOME/conf; the user must 
still start with the Distribution-specific files, and must merge any new 
distribution changes in each new release.

For backward compatibility, the site and node directories are optional and 
ignored if the environment variables are not set. The site and node config 
files should be optional: skip them if they do not exist (or, for node files, 
skip them if DRILL_NODE_CONF_DIR is not set.)



> Extend config system with distrib, site, node property files
> ------------------------------------------------------------
>
>                 Key: DRILL-4591
>                 URL: https://issues.apache.org/jira/browse/DRILL-4591
>             Project: Apache Drill
>          Issue Type: Improvement
>            Reporter: Paul Rogers
>         Attachments: Drill-on-YARNDirectoryStructures.pdf
>
>
> Today Drill provides the drill-override.conf file to set Drill properties, 
> and the drill-env.sh file to provide custom launch properties. Today, most 
> users seem to have a copy of DRILL_HOME per node, and thus they copy these 
> two files per-node. The result is that the two files act as both the overall 
> "site" configuration (for all nodes) and the "per-node" configuration for 
> that one node.
> In addition, some distributions of Drill (such as MapR), modify the "user" 
> config files with settings for that distribution. Now, the same files hold 
> settings for the distribution, site and node.
> The approach works, but is awkward. Ideally, provide the option to have three 
> sets of files: for the distribution, site, and node.
> The proposal is to extend configuration to provide additional levels:
> * Drill defaults (drill default and module conf files, code in 
> drill-config.sh)
> * Distribution settings (special JVM settings, say)
> * Site settings (standard log or spill file locations)
> * Node settings
> * Launch settings (environment variables, -Dname=value options)
> The improvement becomes more important if a user employs NFS, MapR FS or YARN 
> to automatically deploy the site-wide files. In that case, the site files 
> cannot also act as per-node files.
> The improvement also simplifies upgrades. Today, users must copy 
> customizations from and old to a new install. With the revision, Drill files 
> are complely separated from user files, making upgrades (of software) easier.
> For backward compatibility, the site and node directories are optional and 
> ignored if the environment variables are not set. The site and node config 
> files should be optional: skip them if they do not exist.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to