You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Chinna Rao Lalam (JIRA)" <ji...@apache.org> on 2011/08/29 13:47:37 UTC

[jira] [Commented] (HIVE-2182) Avoid null pointer exception when executing UDF

    [ https://issues.apache.org/jira/browse/HIVE-2182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13092781#comment-13092781 ] 

Chinna Rao Lalam commented on HIVE-2182:
----------------------------------------

client side validation we can do while creating the temporary function this scenario is already take care in the existing functionality. While creating temporary function it is throwing exception if the UDF jar not in class path(Hive Class path). If the requested jar in client class path and not in the executed MR class path this issue will come example if the UDF jar maintained in the HIVE/LIB and not executed "add jar" or not updated "hive.aux.jars.path" this issue will come.

> Avoid null pointer exception when executing UDF
> -----------------------------------------------
>
>                 Key: HIVE-2182
>                 URL: https://issues.apache.org/jira/browse/HIVE-2182
>             Project: Hive
>          Issue Type: Bug
>          Components: Query Processor
>    Affects Versions: 0.5.0, 0.8.0
>         Environment: Hadoop 0.20.1, Hive0.8.0 and SUSE Linux Enterprise Server 10 SP2 (i586) - Kernel 2.6.16.60-0.21-smp (5)
>            Reporter: Chinna Rao Lalam
>            Assignee: Chinna Rao Lalam
>         Attachments: HIVE-2182.patch
>
>
> For using UDF's executed following steps
> {noformat}
> add jar /home/udf/udf.jar;
> create temporary function grade as 'udf.Grade';
> select m.userid,m.name,grade(m.maths,m.physics,m.chemistry) from marks m;
> {noformat}
> But from the above steps if we miss the first step (add jar) and execute remaining steps
> {noformat}
> create temporary function grade as 'udf.Grade';
> select m.userid,m.name,grade(m.maths,m.physics,m.chemistry) from marks m;
> {noformat}
> In tasktracker it is throwing this exception
> {noformat}
> Caused by: java.lang.RuntimeException: Map operator initialization failed
> 		 at org.apache.hadoop.hive.ql.exec.ExecMapper.configure(ExecMapper.java:121)
> 		 ... 18 more
> Caused by: java.lang.RuntimeException: java.lang.NullPointerException
> 		 at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:115)
> 		 at org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge.initialize(GenericUDFBridge.java:126)
> 		 at org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator.initialize(ExprNodeGenericFuncEvaluator.java:133)
> 		 at org.apache.hadoop.hive.ql.exec.Operator.initEvaluators(Operator.java:878)
> 		 at org.apache.hadoop.hive.ql.exec.Operator.initEvaluatorsAndReturnStruct(Operator.java:904)
> 		 at org.apache.hadoop.hive.ql.exec.SelectOperator.initializeOp(SelectOperator.java:60)
> 		 at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:357)
> 		 at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:433)
> 		 at org.apache.hadoop.hive.ql.exec.Operator.initializeChildren(Operator.java:389)
> 		 at org.apache.hadoop.hive.ql.exec.TableScanOperator.initializeOp(TableScanOperator.java:133)
> 		 at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:357)
> 		 at org.apache.hadoop.hive.ql.exec.MapOperator.initializeOp(MapOperator.java:444)
> 		 at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:357)
> 		 at org.apache.hadoop.hive.ql.exec.ExecMapper.configure(ExecMapper.java:98)
> 		 ... 18 more
> Caused by: java.lang.NullPointerException
> 		 at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)
> 		 at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:107)
> 		 ... 31 more
> {noformat}
> Instead of null pointer exception it should throw meaning full exception

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira