hadoop-hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zheng Shao (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HIVE-902) cli.sh can not correctly identify Hadoop minor version numbers less than 20
Date Mon, 02 Nov 2009 20:12:59 GMT

    [ https://issues.apache.org/jira/browse/HIVE-902?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12772639#action_12772639
] 

Zheng Shao commented on HIVE-902:
---------------------------------

Carl, it turns out bash 3.00 is complaining:
{code}
hive/bin/ext/cli.sh: line 19: syntax error in conditional expression: unexpected token `('
hive/bin/ext/cli.sh: line 19: syntax error near `^(['
hive/bin/ext/cli.sh: line 19: `  if [[ $version =~ ^([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+).*$
]]; then'
hive/bin/hive: line 173: cli: command not found
{code}

I tried both:
{code}
if [[ $version =~ "^([0-9]+)\.([[:digit:]]+)\.([[:digit:]]+).*$" ]]; then
  major_ver=${BASH_REMATCH[1]};
  minor_ver=${BASH_REMATCH[2]};
  patch_ver=${BASH_REMATCH[3]};
  echo $major_ver $minor_ver $patch_ver;
fi
{code}

and
{code}
if [[ "$version" =~ ^"([0-9]+)\.([[:digit:]]+)\.([[:digit:]]+).*"$ ]]; then
  major_ver=${BASH_REMATCH[1]};
  minor_ver=${BASH_REMATCH[2]};
  patch_ver=${BASH_REMATCH[3]};
  echo $major_ver $minor_ver $patch_ver;
fi
{code}

Both of these worked on bash 3.00.

Can you try these out on bash 4.00? Once it works, can you post another patch on top of the
first one (since the first one is already committed..


> cli.sh can not correctly identify Hadoop minor version numbers less than 20
> ---------------------------------------------------------------------------
>
>                 Key: HIVE-902
>                 URL: https://issues.apache.org/jira/browse/HIVE-902
>             Project: Hadoop Hive
>          Issue Type: Bug
>            Reporter: Carl Steinbach
>            Assignee: Carl Steinbach
>             Fix For: 0.4.1, 0.5.0
>
>         Attachments: HIVE-902.1.patch, HIVE-902.2.patch
>
>
> cli.sh uses the following logic to detect the version of hadoop:
>   version=$($HADOOP version | awk '{print $2;}');
>   if [[ $version =~ "^0\.17" ]] || [[ $version =~ "^0\.18" ]] || [[ $version =~ "^0.19"
]]; then
>       exec $HADOOP jar $AUX_JARS_CMD_LINE ${HIVE_LIB}/hive_cli.jar $CLASS $HIVE_OPTS
"$@"
>   else
>       # hadoop 20 or newer - skip the aux_jars option. picked up from hiveconf
>       exec $HADOOP jar ${HIVE_LIB}/hive_cli.jar $CLASS $HIVE_OPTS "$@" 
>   fi
> Apparently bash doesn't expect you to quote the regex:
> % ./bash -version
> GNU bash, version 4.0.0(1)-release (i386-apple-darwin9.8.0)
> % hadoop version
> Hadoop 0.19.0
> Subversion https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.19 -r 713890
> Compiled by ndaley on Fri Nov 14 03:12:29 UTC 2008
> % version=$(hadoop version | awk '{print $2;}')
> % echo $version
> 0.19.0 https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.19 by
> % [[ $version =~ "^0\.19" ]] && echo "Yes" || echo "No"
> No
> % [[ $version =~ "^0.19" ]] && echo "Yes" || echo "No"
> No
> % [[ $version =~ ^0.19 ]] && echo "Yes" || echo "No"
> Yes

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message