You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "dima machlin (JIRA)" <ji...@apache.org> on 2014/05/27 10:45:02 UTC
[jira] [Commented] (HIVE-2627) NPE on MAP-JOIN with a UDF in an
external JAR
[ https://issues.apache.org/jira/browse/HIVE-2627?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14009503#comment-14009503 ]
dima machlin commented on HIVE-2627:
------------------------------------
I can confirm that this still happens in hive 0.12.
Getting :
java.lang.ClassNotFoundException: com.some.class.used.by.UDF
Continuing ...
java.lang.NullPointerException: target should not be null
java.lang.NullPointerException: target should not be null
Continuing ...
and eventually
ERROR mr.MapredLocalTask: Hive Runtime Error: Map local work failed
java.lang.NullPointerException
at org.apache.hadoop.hive.ql.exec.FunctionRegistry.isStateful(FunctionRegistry.java:1415)
at org.apache.hadoop.hive.ql.exec.FunctionRegistry.isDeterministic(FunctionRegistry.java:1385)
at org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator.isDeterministic(ExprNodeGenericFuncEvaluator.java:132)
at org.apache.hadoop.hive.ql.exec.FunctionRegistry.isDeterministic(FunctionRegistry.java:1385)
at org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator.isDeterministic(ExprNodeGenericFuncEvaluator.java:132)
at org.apache.hadoop.hive.ql.exec.ExprNodeEvaluatorFactory.iterate(ExprNodeEvaluatorFactory.java:83) at org.apache.hadoop.hive.ql.exec.ExprNodeEvaluatorFactory.iterate(ExprNodeEvaluatorFactory.java:83)
at org.apache.hadoop.hive.ql.exec.ExprNodeEvaluatorFactory.toCachedEval(ExprNodeEvaluatorFactory.java:73)
at org.apache.hadoop.hive.ql.exec.SelectOperator.initializeOp(SelectOperator.java:57)
at org.apache.hadoop.hive.ql.exec.SelectOperator.initializeOp(SelectOperator.java:57)
at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:377) at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:377)
at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:453) at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:453)
at org.apache.hadoop.hive.ql.exec.Operator.initializeChildren(Operator.java:409)
at org.apache.hadoop.hive.ql.exec.TableScanOperator.initializeOp(TableScanOperator.java:188)
at org.apache.hadoop.hive.ql.exec.TableScanOperator.initializeOp(TableScanOperator.java:188)
at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:377)
at org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask.initializeOperators(MapredLocalTask.java:419)
at org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask.executeFromChildJVM(MapredLocalTask.java:305)
at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.main(ExecDriver.java:722)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:197)
> NPE on MAP-JOIN with a UDF in an external JAR
> ---------------------------------------------
>
> Key: HIVE-2627
> URL: https://issues.apache.org/jira/browse/HIVE-2627
> Project: Hive
> Issue Type: Bug
> Reporter: Jonathan Chang
>
> When a query is converted into a map join, and it depends on some UDF (ADD JAR...; CREATE TEMPORARY FUNCTION...), then an NPE may happen. Here is an example.
> SELECT
> some_udf(dummy1) as dummies
> FROM (
> SELECT
> a.dummy as dummy1,
> b.dummy as dummy2
> FROM
> test a
> LEFT OUTER JOIN
> test b
> ON
> a.dummy = b.dummy
> ) c;
> My guess is that the JAR classes are not getting propagated to the hashmapjoin operator.
--
This message was sent by Atlassian JIRA
(v6.2#6252)