James Spurin created HIVE-7658:
----------------------------------
Summary: Hive search order for hive-site.xml when using --config
option
Key: HIVE-7658
URL: https://issues.apache.org/jira/browse/HIVE-7658
Project: Hive
Issue Type: Bug
Components: CLI
Affects Versions: 0.13.0
Environment: -bash-3.2$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.9 (Tikanga)
Hive 0.13.0-mapr-1406
Subversion git://rhbuild/root/builds/opensource/node/ecosystem/dl/hive -r
4ff8f8b4a8fc4862727108204399710ef7ee7abc
Compiled by root on Tue Jul 1 14:18:09 PDT 2014
>From source with checksum 208afc25260342b51aefd2e0edf4c9d6
Reporter: James Spurin
Priority: Minor
When using the hive cl, the tool appears to favour a hive-site.xml file in the
current working directory even if the --config option is used with a valid
directory containing a hive-site.xml file.
I would have expected the directory specified with --config to take precedence
in the CLASSPATH search order.
Here's an example -
/home/spurija/hive-site.xml =
<configuration>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/tmp/example1</value>
</property>
</configuration>
/tmp/hive/hive-site.xml =
<configuration>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/tmp/example2</value>
</property>
</configuration>
-bash-4.1$ diff /home/spurija/hive-site.xml /tmp/hive/hive-site.xml
23c23
< <value>/tmp/example1</value>
---
> <value>/tmp/example2</value>
{ check the value of scratchdir, should be example 1 }
-bash-4.1$ pwd
/home/spurija
-bash-4.1$ hive
Logging initialized using configuration in
jar:file:/opt/mapr/hive/hive-0.13/lib/hive-common-0.13.0-mapr-1405.jar!/hive-log4j.properties
hive> set hive.exec.local.scratchdir;
hive.exec.local.scratchdir=/tmp/example1
{ run with a specified config, check the value of scratchdir, should be
example2 … still reported as example1 }
-bash-4.1$ pwd
/home/spurija
-bash-4.1$ hive --config /tmp/hive
Logging initialized using configuration in
jar:file:/opt/mapr/hive/hive-0.13/lib/hive-common-0.13.0-mapr-1405.jar!/hive-log4j.properties
hive> set hive.exec.local.scratchdir;
hive.exec.local.scratchdir=/tmp/example1
{ remove the local config, check the value of scratchdir, should be example2 …
now correct }
-bash-4.1$ pwd
/home/spurija
-bash-4.1$ rm hive-site.xml
-bash-4.1$ hive --config /tmp/hive
Logging initialized using configuration in
jar:file:/opt/mapr/hive/hive-0.13/lib/hive-common-0.13.0-mapr-1405.jar!/hive-log4j.properties
hive> set hive.exec.local.scratchdir;
hive.exec.local.scratchdir=/tmp/example2
Is this expected behavior or should it use the directory supplied with --config
as the preferred configuration?
--
This message was sent by Atlassian JIRA
(v6.2#6252)