UDFContext NULL JobConf

2013-10-31 Thread Henning Kropp
Hi,

in my UDF (Java) the following code throws and NPE, when executed in -x
mapred mode:

Configuration jobConf = UDFContext.getUDFContext().getJobConf();
System.err.println(jobConf.toString());

I did not find any useful information as why my JobConf is always null. All
I find is that this is the right way to get the JobConf in a UDF and that
the behavior of what is returned when running locally (jira issue).

Any ideas? I am running it on a very old Hadoop version 0.20.2 Are there
some known issues?

Many thanks in advanced


Re: UDFContext NULL JobConf

2013-10-31 Thread Henning Kropp
Sure, just did https://issues.apache.org/jira/browse/PIG-3554

Kind regards


2013/10/30 Cheolsoo Park 

> Indeed. Do you mind filing a jira?
> https://issues.apache.org/jira/browse/PIG
>
>
> On Wed, Oct 30, 2013 at 11:34 AM, Henning Kropp  >wrote:
>
> > Wow, I was pretty sure to have tested it, but apparently not. The reason
> > for the NPE seems to be the @MonitoredUDF
> >
> > You can reproduced it with the following code:
> >
> > import java.io.IOException;
> > import java.util.concurrent.TimeUnit;
> > import org.apache.hadoop.conf.Configuration;
> > import org.apache.pig.EvalFunc;
> > import org.apache.pig.builtin.MonitoredUDF;
> > import org.apache.pig.data.Tuple;
> > import org.apache.pig.impl.util.UDFContext;
> >
> > @MonitoredUDF(timeUnit = TimeUnit.HOURS, duration = 3, intDefault = 1)
> > public class TestJobConf extends EvalFunc {
> >
> > public TestJobConf() {
> > }
> >
> > @Override
> > public Tuple exec(Tuple tuple) throws IOException {
> > if (tuple == null || tuple.size() == 0) {
> > return null;
> > }
> > Configuration jobConf;
> > jobConf = UDFContext.getUDFContext().getJobConf();
> > System.err.println(jobConf.toString());
> > return null;
> > }
> >
> > }
> >
> > Log from the Task:
> >
> > 2013-10-30 19:24:09,516 ERROR TestJobConf:
> > java.util.concurrent.ExecutionException:
> > java.lang.NullPointerException
> > 2013-10-30 19:24:10,388 ERROR TestJobConf:
> > java.util.concurrent.ExecutionException:
> > java.lang.NullPointerException
> > 2013-10-30 19:24:10,880 ERROR TestJobConf:
> > java.util.concurrent.ExecutionException:
> > java.lang.NullPointerException
> > 2013-10-30 19:24:11,512 ERROR TestJobConf:
> > java.util.concurrent.ExecutionException:
> > java.lang.NullPointerException
> > 2013-10-30 19:24:12,264 ERROR TestJobConf:
> > java.util.concurrent.ExecutionException:
> > java.lang.NullPointerException
> >
> >
> > Without the MonitoredUDF Annotation the log output is:
> >
> > Configuration: core-default.xml, core-site.xml, mapred-default.xml,
> > mapred-site.xml, hdfs-default.xml, hdfs-site.xml, .
> >
> > Seems like a bug.
> >
> >
> > 2013/10/30 Pradeep Gollakota 
> >
> > > Are you able to post your UDF (or at least a sanitized version)?
> > >
> > >
> > > On Wed, Oct 30, 2013 at 10:46 AM, Henning Kropp <
> henning.kr...@gmail.com
> > > >wrote:
> > >
> > > > Hi,
> > > >
> > > > thanks for your reply. I read about the expected behavior on the
> > > front-end
> > > > and I am getting the NPE on the back-end. The Mappers log the
> Exception
> > > > during Execution.
> > > >
> > > > I am currently digging through debug messages. What to look out for?
> > > There
> > > > are bunch of
> > > >
> > > > [main] DEBUG org.apache.hadoop.conf.Configuration  -
> > java.io.IOException:
> > > > config()
> > > >
> > > > log messages. But I recall them as being "normal" for reasons I don't
> > > > remember.
> > > >
> > > > Regards
> > > >
> > > >
> > > > 2013/10/30 Cheolsoo Park 
> > > >
> > > > > Hi,
> > > > >
> > > > > Are you getting NPE on the front-end or the back-end? Sounds like
> > > jobConf
> > > > > is not added to UDFContext, which is expected on the front-end.
> > Please
> > > > see
> > > > > the comments in getJobConf() and addJobConf() in the source code:
> > > > >
> > > > >
> > > > >
> > > >
> > >
> >
> https://svn.apache.org/repos/asf/pig/trunk/src/org/apache/pig/impl/util/UDFContext.java
> > > > >
> > > > > Thanks,
> > > > > Cheolsoo
> > > > >
> > > > >
> > > > > On Wed, Oct 30, 2013 at 9:57 AM, Henning Kropp <
> > > henning.kr...@gmail.com
> > > > > >wrote:
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > I am stuck. In my UDF (Java) extends EvalFunc the following code
> > > throws
> > > > > and
> > > > > > NPE in exec(), when executed in -x mapred mode:
> > > > > >
> > > > > > Configuration jobConf = UDFContext.getUDFContext().getJobConf();
> > > > > > System.err.println(jobConf.toString());
> > > > > >
> > > > > > I did not find any useful information as why my JobConf is always
> > > null.
> > > > > All
> > > > > > I find is that this is the right way to get the JobConf in a UDF
> > and
> > > > that
> > > > > > the behavior of what is returned when running locally (jira
> issue).
> > > > > >
> > > > > > Any ideas? I am running it on a very old Hadoop version 0.20.2
> Are
> > > > there
> > > > > > some known issues? I use Pig 0.11.1
> > > > > >
> > > > > > Many thanks in advanced
> > > > > >
> > > > > > PS: Just found someone with the same issue
> > > > > >
> > > >
> > http://stackoverflow.com/questions/18795008/accessing-hdfs-from-pig-udf
> > > > > >
> > > > >
> > > >
> > >
> >
>


Re: UDFContext NULL JobConf

2013-10-30 Thread Henning Kropp
Wow, I was pretty sure to have tested it, but apparently not. The reason
for the NPE seems to be the @MonitoredUDF

You can reproduced it with the following code:

import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.apache.hadoop.conf.Configuration;
import org.apache.pig.EvalFunc;
import org.apache.pig.builtin.MonitoredUDF;
import org.apache.pig.data.Tuple;
import org.apache.pig.impl.util.UDFContext;

@MonitoredUDF(timeUnit = TimeUnit.HOURS, duration = 3, intDefault = 1)
public class TestJobConf extends EvalFunc {

public TestJobConf() {
}

@Override
public Tuple exec(Tuple tuple) throws IOException {
if (tuple == null || tuple.size() == 0) {
return null;
}
Configuration jobConf;
jobConf = UDFContext.getUDFContext().getJobConf();
System.err.println(jobConf.toString());
return null;
}

}

Log from the Task:

2013-10-30 19:24:09,516 ERROR TestJobConf:
java.util.concurrent.ExecutionException:
java.lang.NullPointerException
2013-10-30 19:24:10,388 ERROR TestJobConf:
java.util.concurrent.ExecutionException:
java.lang.NullPointerException
2013-10-30 19:24:10,880 ERROR TestJobConf:
java.util.concurrent.ExecutionException:
java.lang.NullPointerException
2013-10-30 19:24:11,512 ERROR TestJobConf:
java.util.concurrent.ExecutionException:
java.lang.NullPointerException
2013-10-30 19:24:12,264 ERROR TestJobConf:
java.util.concurrent.ExecutionException:
java.lang.NullPointerException


Without the MonitoredUDF Annotation the log output is:

Configuration: core-default.xml, core-site.xml, mapred-default.xml,
mapred-site.xml, hdfs-default.xml, hdfs-site.xml, .

Seems like a bug.


2013/10/30 Pradeep Gollakota 

> Are you able to post your UDF (or at least a sanitized version)?
>
>
> On Wed, Oct 30, 2013 at 10:46 AM, Henning Kropp  >wrote:
>
> > Hi,
> >
> > thanks for your reply. I read about the expected behavior on the
> front-end
> > and I am getting the NPE on the back-end. The Mappers log the Exception
> > during Execution.
> >
> > I am currently digging through debug messages. What to look out for?
> There
> > are bunch of
> >
> > [main] DEBUG org.apache.hadoop.conf.Configuration  - java.io.IOException:
> > config()
> >
> > log messages. But I recall them as being "normal" for reasons I don't
> > remember.
> >
> > Regards
> >
> >
> > 2013/10/30 Cheolsoo Park 
> >
> > > Hi,
> > >
> > > Are you getting NPE on the front-end or the back-end? Sounds like
> jobConf
> > > is not added to UDFContext, which is expected on the front-end. Please
> > see
> > > the comments in getJobConf() and addJobConf() in the source code:
> > >
> > >
> > >
> >
> https://svn.apache.org/repos/asf/pig/trunk/src/org/apache/pig/impl/util/UDFContext.java
> > >
> > > Thanks,
> > > Cheolsoo
> > >
> > >
> > > On Wed, Oct 30, 2013 at 9:57 AM, Henning Kropp <
> henning.kr...@gmail.com
> > > >wrote:
> > >
> > > > Hi,
> > > >
> > > > I am stuck. In my UDF (Java) extends EvalFunc the following code
> throws
> > > and
> > > > NPE in exec(), when executed in -x mapred mode:
> > > >
> > > > Configuration jobConf = UDFContext.getUDFContext().getJobConf();
> > > > System.err.println(jobConf.toString());
> > > >
> > > > I did not find any useful information as why my JobConf is always
> null.
> > > All
> > > > I find is that this is the right way to get the JobConf in a UDF and
> > that
> > > > the behavior of what is returned when running locally (jira issue).
> > > >
> > > > Any ideas? I am running it on a very old Hadoop version 0.20.2 Are
> > there
> > > > some known issues? I use Pig 0.11.1
> > > >
> > > > Many thanks in advanced
> > > >
> > > > PS: Just found someone with the same issue
> > > >
> > http://stackoverflow.com/questions/18795008/accessing-hdfs-from-pig-udf
> > > >
> > >
> >
>


Re: UDFContext NULL JobConf

2013-10-30 Thread Henning Kropp
Hi,

thanks for your reply. I read about the expected behavior on the front-end
and I am getting the NPE on the back-end. The Mappers log the Exception
during Execution.

I am currently digging through debug messages. What to look out for? There
are bunch of

[main] DEBUG org.apache.hadoop.conf.Configuration  - java.io.IOException:
config()

log messages. But I recall them as being "normal" for reasons I don't
remember.

Regards


2013/10/30 Cheolsoo Park 

> Hi,
>
> Are you getting NPE on the front-end or the back-end? Sounds like jobConf
> is not added to UDFContext, which is expected on the front-end. Please see
> the comments in getJobConf() and addJobConf() in the source code:
>
>
> https://svn.apache.org/repos/asf/pig/trunk/src/org/apache/pig/impl/util/UDFContext.java
>
> Thanks,
> Cheolsoo
>
>
> On Wed, Oct 30, 2013 at 9:57 AM, Henning Kropp  >wrote:
>
> > Hi,
> >
> > I am stuck. In my UDF (Java) extends EvalFunc the following code throws
> and
> > NPE in exec(), when executed in -x mapred mode:
> >
> > Configuration jobConf = UDFContext.getUDFContext().getJobConf();
> > System.err.println(jobConf.toString());
> >
> > I did not find any useful information as why my JobConf is always null.
> All
> > I find is that this is the right way to get the JobConf in a UDF and that
> > the behavior of what is returned when running locally (jira issue).
> >
> > Any ideas? I am running it on a very old Hadoop version 0.20.2 Are there
> > some known issues? I use Pig 0.11.1
> >
> > Many thanks in advanced
> >
> > PS: Just found someone with the same issue
> > http://stackoverflow.com/questions/18795008/accessing-hdfs-from-pig-udf
> >
>


UDFContext NULL JobConf

2013-10-30 Thread Henning Kropp
Hi,

I am stuck. In my UDF (Java) extends EvalFunc the following code throws and
NPE in exec(), when executed in -x mapred mode:

Configuration jobConf = UDFContext.getUDFContext().getJobConf();
System.err.println(jobConf.toString());

I did not find any useful information as why my JobConf is always null. All
I find is that this is the right way to get the JobConf in a UDF and that
the behavior of what is returned when running locally (jira issue).

Any ideas? I am running it on a very old Hadoop version 0.20.2 Are there
some known issues? I use Pig 0.11.1

Many thanks in advanced

PS: Just found someone with the same issue
http://stackoverflow.com/questions/18795008/accessing-hdfs-from-pig-udf