hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Vovchenko (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-17335) Join query with STREAMTABLE fails by java.lang.IndexOutOfBoundsException
Date Mon, 21 Aug 2017 16:51:00 GMT

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

Aleksey Vovchenko commented on HIVE-17335:
------------------------------------------

[~sershe]
Hi. 
We have this exception because Hive reorders tagOrder and filterOrder without filterMaps reordering.

But I think filterMaps reordering is not a very good idea. So I have created a patch without
changing order of filterMaps.

But now I have a problem. Left join works correctly, but right join returns wrong result.
It happens because my fix changes order of processing(filters) rows from a storage. Can you
take a look or give me an advice for how I can do it other way?

> Join query with STREAMTABLE fails by java.lang.IndexOutOfBoundsException
> ------------------------------------------------------------------------
>
>                 Key: HIVE-17335
>                 URL: https://issues.apache.org/jira/browse/HIVE-17335
>             Project: Hive
>          Issue Type: Bug
>          Components: Query Processor
>    Affects Versions: 1.2.1, 2.1.1
>            Reporter: Aleksey Vovchenko
>            Assignee: Aleksey Vovchenko
>         Attachments: HIVE-17335-branch-2.1.patch
>
>
> Steps to reproduce this issue: 
> h2. STEP 1. Create test tables and insert some data 
> {noformat}
> hive> create table test1(x int, y int, z int);
> hive> create table test2(x int, y int, z int);
> {noformat}
> {noformat}
> hive> insert into table test1 values(1,1,1), (2,2,2);
> hive> insert into table test2 values(1,5,5), (2,6,6);
> {noformat}
> h2. STEP 2. Disable MapJoin
> {noformat}
> hive> set hive.auto.convert.join = false;
> {noformat}
> h2.STEP 3. Run query
> {noformat}
> select /*+ STREAMTABLE(test1) */ test1.*, test2.x from test1 left join test2 on test1.x
= test2.x and test1.x > 1;
> {noformat}
> EXPECTED RESULT: 
> {noformat}
> OK
> 1	1	1	NULL
> 2	2	2	2
> {noformat}
> ACTUAL RESULT:
> {noformat} 
> 2017-08-17 00:36:46,305 Stage-1 map = 0%,  reduce = 0%
> 2017-08-17 00:36:51,708 Stage-1 map = 50%,  reduce = 0%, Cumulative CPU 1.25 sec
> 2017-08-17 00:36:52,761 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 2.35 sec
> 2017-08-17 00:37:17,137 Stage-1 map = 100%,  reduce = 100%, Cumulative CPU 2.35 sec
> MapReduce Total cumulative CPU time: 2 seconds 350 msec
> Ended Job = job_1502889241527_0005 with errors
> Error during job, obtaining debugging information...
> Examining task ID: task_1502889241527_0005_m_000000 (and more) from job job_1502889241527_0005
> Task with the most failures(4): 
> -----
> Task ID:
>   task_1502889241527_0005_r_000000
> -----
> Diagnostic Messages for this Task:
> Error: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException:
Hive Runtime Error while processing row (tag=0) {"key":{"reducesinkkey0":1},"value":null}
> 	at org.apache.hadoop.hive.ql.exec.mr.ExecReducer.reduce(ExecReducer.java:257)
> 	at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:444)
> 	at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:392)
> 	at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
> 	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:1595)
> 	at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while
processing row (tag=0) {"key":{"reducesinkkey0":1},"value":null}
> 	at org.apache.hadoop.hive.ql.exec.mr.ExecReducer.reduce(ExecReducer.java:245)
> 	... 7 more
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.IndexOutOfBoundsException:
Index: 0, Size: 0
> 	at org.apache.hadoop.hive.ql.exec.JoinOperator.process(JoinOperator.java:138)
> 	at org.apache.hadoop.hive.ql.exec.mr.ExecReducer.reduce(ExecReducer.java:236)
> 	... 7 more
> Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> 	at java.util.ArrayList.rangeCheck(ArrayList.java:635)
> 	at java.util.ArrayList.get(ArrayList.java:411)
> 	at org.apache.hadoop.hive.ql.exec.JoinUtil.isFiltered(JoinUtil.java:248)
> 	at org.apache.hadoop.hive.ql.exec.CommonJoinOperator.getFilteredValue(CommonJoinOperator.java:420)
> 	at org.apache.hadoop.hive.ql.exec.JoinOperator.process(JoinOperator.java:91)
> 	... 8 more
> FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
> MapReduce Jobs Launched: 
> {noformat} 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message