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)

Reply via email to