Cheolsoo Park created PIG-3145:
----------------------------------

             Summary: Parameters in core-site.xml and mapred-site.xml are not 
correctly substituted
                 Key: PIG-3145
                 URL: https://issues.apache.org/jira/browse/PIG-3145
             Project: Pig
          Issue Type: Bug
            Reporter: Cheolsoo Park
            Assignee: Cheolsoo Park


To reproduce the issue, please do the following:

# Parameterize the address of name node in core-site.xml.
{code}
  <property>
    <name>fs.default.name</name>
    <value>hdfs://${foo}:8020</value>
  </property>
{code}
# Set the value of "foo" via -D option.
{code}
export PIG_OPTS="-Dfoo=mr1-0.cheolsoo.com"
{code}
# Pig fails with the following error.
{code}
2013-01-28 18:54:02,786 [main] INFO  
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to 
hadoop file system at: hdfs://${foo}:8020
2013-01-28 18:54:02,805 [main] ERROR org.apache.pig.Main - ERROR 2999: 
Unexpected internal error. null
Details at logfile: /home/cheolsoo/pig-cdh/pig_1359428042522.log
{code}
Note that the parameter $\{foo\} in core-site.xml is not expanded. This is 
because the addresses of name node and job tracker are read directly from 
core-site.xml instead of reading via Configuration.get().
{code:title=HExecutionEngine.java}
// properties is Java Properties
cluster = properties.getProperty(JOB_TRACKER_LOCATION);
nameNode = properties.getProperty(FILE_SYSTEM_LOCATION);
{code}
Replacing these lines with Configuration.get() fixes the issue.
{code:title=HExecutionEngine.java}
// jc is Hadoop Configuration
cluster = jc.get(JOB_TRACKER_LOCATION);
nameNode = jc.get(FILE_SYSTEM_LOCATION);
{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to