You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Arpit Agarwal (JIRA)" <ji...@apache.org> on 2017/10/24 19:26:00 UTC

[jira] [Created] (HDFS-12706) Allow overriding HADOOP_SHELL_EXECNAME

Arpit Agarwal created HDFS-12706:
------------------------------------

             Summary: Allow overriding HADOOP_SHELL_EXECNAME
                 Key: HDFS-12706
                 URL: https://issues.apache.org/jira/browse/HDFS-12706
             Project: Hadoop HDFS
          Issue Type: Improvement
            Reporter: Arpit Agarwal


Some Hadoop shell scripts infer their own name using this bit of shell magic:

{code}
 18     MYNAME="${BASH_SOURCE-$0}"
 19     HADOOP_SHELL_EXECNAME="${MYNAME##*/}"
{code}

e.g. see the [hdfs|https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/bin/hdfs#L18] script.

The inferred shell script name is later passed to _hadoop-functions.sh_ which uses it to construct the names of some environment variables. E.g. when invoking _hdfs datanode_, the options variable name is inferred as follows:
{code}
# HDFS + DATANODE + OPTS -> HDFS_DATANODE_OPTS
{code}

This works well if the calling script name is standard {{hdfs}} or {{yarn}}. If a distribution renames the script to something like foo.bar, , then the variable names will be inferred as {{FOO.BAR_DATANODE_OPTS}}. This is not a valid bash variable name.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org