Hortonworks HDP 2.3.0 - Hive 0.14
Table T1 ( partition on col1, no bucket, ORC ) app 120 million rows & 6GB datasize Table T2 ( partition on col2, no bucket, ORC ) app 200 M rows & 6MB datasize
T1 left outer join on t2 ( t1.col3 = t2.col3 )
The above query is long running in the last reducer phase in both tez & mr mode. I also tried auto convert true / false & explicit mapjoin.
Still the query is running in the last reducer phase, never ending.
FYI - If data size of T2 is either 9k or 1GB, the query finishes.
But have you tried giving size to auto convert join, try giving size > than of small table that can be fit into memory.
The problem maybe is that there are too many bytes/rows per reducer. If the application execution is stuck in the last single reducer then it's most probably data skew. To check it, select top 5 col3 from both tables, skew is when there are a lot of records with the same key value(say 30%). If it's a skew then try to join separately skew key then UNION ALL with all other keys join. Something like this:
If the application execution is stuck in the last reducer stage, not a single reducer or few reducers, then check bytes.per.reducer hive setting, maybe it's too high.