[ https://issues.apache.org/jira/browse/HIVE-5532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shuaishuai Nie updated HIVE-5532: --------------------------------- Description: In Windows environment, environment variable is quoted to preserve special characters like space. However since MapredLocalTask will call hadoop.cmd to launch ExecDriver and hadoop.cmd will reconstruct environment variable like {code} set HADOOP_OPTS=%HADOOP_OPTS% %HADOOP_CLIENT_OPTS% {code} the quotes for HADOOP_CLIENT_OPTS will be part of HADOOP_OPTS and nullify the variables in HADOOP_CLIENT_OPTS after appending to HADOOP_OPTS. Example HADOOP_OPTS: {code} -Dhadoop.log.dir=C:\apps\dist\hadoop-1.2.0.1.3.1.0-06\logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=C:\apps\dist\hadoop-1.2.0.1.3.1.0-06 -Dhadoop.root.logger="INFO,TLA" -Djava.library.path=;C:\apps\dist\hadoop-1.2.0.1.3.1.0-06\lib\native\Windows_NT-amd64-64;C:\apps\dist\hadoop-1.2.0.1.3.1.0-06\lib\native -Dhadoop.policy.file=hadoop-policy.xml "-Dhadoop.tasklog.taskid=attempt_201310092133_0006_m_000000_0 -Dhadoop.tasklog.iscleanup=false -Dhadoop.tasklog.totalLogFileSize=0" {code} One failure scenario is when map side join is launched by Oozie, the job fails because cannot find "hadoop.tasklog.taskid" and throw exception when initializing log4j > In Windows, MapredLocalTask need to remove quotes on environment variable > before launch ExecDriver in another JVM > ----------------------------------------------------------------------------------------------------------------- > > Key: HIVE-5532 > URL: https://issues.apache.org/jira/browse/HIVE-5532 > Project: Hive > Issue Type: Bug > Reporter: Shuaishuai Nie > Assignee: Shuaishuai Nie > > In Windows environment, environment variable is quoted to preserve special > characters like space. However since MapredLocalTask will call hadoop.cmd to > launch ExecDriver and hadoop.cmd will reconstruct environment variable like > {code} > set HADOOP_OPTS=%HADOOP_OPTS% %HADOOP_CLIENT_OPTS% > {code} > the quotes for HADOOP_CLIENT_OPTS will be part of HADOOP_OPTS and nullify the > variables in HADOOP_CLIENT_OPTS after appending to HADOOP_OPTS. > Example HADOOP_OPTS: > {code} > -Dhadoop.log.dir=C:\apps\dist\hadoop-1.2.0.1.3.1.0-06\logs > -Dhadoop.log.file=hadoop.log > -Dhadoop.home.dir=C:\apps\dist\hadoop-1.2.0.1.3.1.0-06 > -Dhadoop.root.logger="INFO,TLA" > -Djava.library.path=;C:\apps\dist\hadoop-1.2.0.1.3.1.0-06\lib\native\Windows_NT-amd64-64;C:\apps\dist\hadoop-1.2.0.1.3.1.0-06\lib\native > -Dhadoop.policy.file=hadoop-policy.xml > "-Dhadoop.tasklog.taskid=attempt_201310092133_0006_m_000000_0 > -Dhadoop.tasklog.iscleanup=false -Dhadoop.tasklog.totalLogFileSize=0" > {code} > One failure scenario is when map side join is launched by Oozie, the job > fails because cannot find "hadoop.tasklog.taskid" and throw exception when > initializing log4j -- This message was sent by Atlassian JIRA (v6.1#6144)