hive.exec.parallel参数控制在同一个sql中的不同的job是否可以同时运行,默认为false.
下面是对于该参数的测试过程:
测试sql:
select r1.a from ( select t.a from sunwg_10 t join sunwg_10000000 s on t.a=s.b) r1 join (select s.b from sunwg_100000 t join sunwg_10 s on t.a=s.b) r2 on (r1.a=r2.b);
1 当参数为false的时候,三个job是顺序的执行
set hive.exec.parallel=false;
2 但是可以看出来其实两个子查询中的sql并无关系,可以并行的跑
set hive.exec.parallel=true;
总结:
在资源充足的时候hive.exec.parallel会让那些存在并发job的sql运行得更快,但同时消耗更多的资源
可以评估下hive.exec.parallel对我们的刷新任务是否有帮助.
转自 http://www.oratea.net/?p=1377