You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tez.apache.org by Yu Azuryy <az...@outlook.com> on 2014/06/05 06:32:44 UTC

Hive NPE under Tez only if UDF used.

 Hi,
Here is a strange error with hive under Tez.  I am using hive-0.13.0 and tez-0.5-snapshot

I can run Hive job successful under tez without UDF used. 
I can run tez MR example job successful  under tez.

but there is hive job NPE under tez with UDF used.

java.lang.NullPointerException
        at org.apache.hadoop.hive.ql.exec.FileSinkOperator.createBucketFiles(FileSinkOperator.java:456)
        at org.apache.hadoop.hive.ql.exec.FileSinkOperator.closeOp(FileSinkOperator.java:837)
        at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:577)
        at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588)
        at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588)
        at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588)
        at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588)
        at org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.close(MapRecordProcessor.java:210)
        at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:173)
        at org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:307)
        at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:181)
        at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:173)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1565)
        at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.call(TezTaskRunner.java:173)
        at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.call(TezTaskRunner.java:168)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)

Anybody know how to fix it? Thanks.
 
 
 		 	   		  

RE: Hive NPE under Tez only if UDF used.

Posted by Yu Azuryy <az...@outlook.com>.
Fixed.
 
Sorry, It's my fault. I hacked Hadoop major version in my test cluster as 1.3.0, actually it was 2.4.0.
But ShimLoader parse major version as 1, so get HDFSv1 FileSystem. then I get this error. 
 
> From: azuryyu@outlook.com
> To: dev@tez.incubator.apache.org
> Subject: Hive NPE under Tez only if UDF used.
> Date: Thu, 5 Jun 2014 04:32:44 +0000
> 
>  Hi,
> Here is a strange error with hive under Tez.  I am using hive-0.13.0 and tez-0.5-snapshot
> 
> I can run Hive job successful under tez without UDF used. 
> I can run tez MR example job successful  under tez.
> 
> but there is hive job NPE under tez with UDF used.
> 
> java.lang.NullPointerException
>         at org.apache.hadoop.hive.ql.exec.FileSinkOperator.createBucketFiles(FileSinkOperator.java:456)
>         at org.apache.hadoop.hive.ql.exec.FileSinkOperator.closeOp(FileSinkOperator.java:837)
>         at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:577)
>         at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588)
>         at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588)
>         at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588)
>         at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588)
>         at org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.close(MapRecordProcessor.java:210)
>         at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:173)
>         at org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:307)
>         at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:181)
>         at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:173)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.security.auth.Subject.doAs(Subject.java:415)
>         at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1565)
>         at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.call(TezTaskRunner.java:173)
>         at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.call(TezTaskRunner.java:168)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:744)
> 
> Anybody know how to fix it? Thanks.
>  
>  
>