HIVE中,多表分组统计UNION后插入汇总表,如何优化

eksmile 2016-04-18 04:23:19
insert into table 汇总表
select * from(
select ip, count(*) from A where dayid='**' group by ip
union all
select ip, count(*) from B where dayid='**' group by ip
union all
......
union all
select ip, count(*) from Z where dayid='**' group by ip
) as tmp;


HIVE里,请问像这样的语句要怎么优化?

里面UNION ALL的各项的源表都不相同的。
我觉得应该是可以并行执行的。但是,我设置并行不管用。
虽然一开始同时启动了8个JOB,但是,看日志,还是一个接一个的跑。并没用同时运行那8个。
set hive.exec.parallel=true;
set hive.exec.parallel.thread.number=8;
(我试了两种设置方式 : 执行INSERT 语句之前,先执行这两行脚本。以及, 修改HIVE的hive-site.xml配置)

设置JVM重用也没用。
set Mapred.Job.reuse.jvm.num.tasks = 5;

求指教。

PS:其实每个表的文件很小。我也不懂为什么非要上HADOOP。。。

(系统的推荐邀请,冒昧打扰)
...全文
486 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

20,808

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧