Study the execution logs. If it is a skew (single reducer runs slow), see this answer. And if there is no skew, then
try to increase parallelism:
Example settings for Mappers on Tez:
set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
set tez.grouping.max-size=32000000;
set tez.grouping.min-size=32000;
Example settings for Mappers if you decide to run on MR instead of Tez:
set mapreduce.input.fileinputformat.split.minsize=32000;
set mapreduce.input.fileinputformat.split.maxsize=32000000;
--example settings for reducers:
set hive.exec.reducers.bytes.per.reducer=32000000; --decrease this to increase the number of reducers, increase to reduce parallelism
Play with these settings. Success criteria is more mappers/reducers and your map and reduce stages are running faster.
See also: https://stackoverflow.com/a/48487306/2700344
@GordonLinoff recipe will work fine if WHERE conditions are selective and smaller filtered dataset fit in memory(before join) and map-join is enabled: set hive.auto.convert.join=true;