Hive的优化之提高Job的并行度

  • 参数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多分钟

 

上一篇:vue rules 特殊验证添加


下一篇:部署以太坊主网全数据节点