- 参数hive.exec.parallel可以控制一个sql中多个可并行执行的job的运行方式,当hive.exec.parallel为true的时候,同一个sql中可以并行执行的job会并发的执行;
- 而参数hive.exec.parallel.thread.number就是控制对于同一个sql来说同时可以运行的job的最大值,该参数默认为8.此时最大可以同时运行8个job.
- 案例:统计自助化投放宽表每个标签不为0的数据量
○ set hive.exec.parallel=true;
○ set hive.exec.parallel.thread.number=32;
○ sql:多段sql union all
select count(distinct column1) from ${database}.${table} union all
select count(distinct column2) from ${database}.${table} union all
select count(distinct column3) from ${database}.${table} union all
select count(distinct column4) from ${database}.${table} union all
select count(distinct column5) from ${database}.${table} union all
select count(distinct column6) from ${database}.${table} union all
......
○ 设置后并行度提到了32
14亿数据100多个select 优化前 执行三百多分钟,优化后30多分钟