zoukankan      html  css  js  c++  java
  • hive并行执行job

    用过oracle rac的应该都知道parallel的用途。

    并行执行的确可以大的加快任务的执行速率,但不会减少其占用的资源。

    在hive中也有并行执行的选项。

     

     

    set hive.exec.parallel=true;   //打开任务并行执行

     

    set hive.exec.parallel.thread.number=16; //同一个sql允许最大并行度,默认为8。

     

    对于同一个SQL产生的JOB,如果不存在依赖的情况下,将会并行启动JOB,

    比如:

     

    Sql代码  收藏代码
    1. from (  
    2. select phone,to_phone, substr(to_phone,-1) as key  
    3. from youni_contact4_lxw   
    4. where youni_id='1'   
    5. and length(to_phone) = 11   
    6. and  substr(to_phone,1,2) IN ('13','14','15','18')   
    7. group by phone,to_phone, substr(to_phone,-1)   
    8. ) t  
    9. insert overwrite table youni_contact41_lxw partition(pt='0')  
    10. select phone,to_phone where key='0'  
    11. insert overwrite table youni_contact41_lxw partition(pt='1')  
    12. select phone,to_phone where key='1'  
    13. insert overwrite table youni_contact41_lxw partition(pt='2')  
    14. select phone,to_phone where key='2'  
    15. insert overwrite table youni_contact41_lxw partition(pt='3')  
    16. select phone,to_phone where key='3'  
    17. insert overwrite table youni_contact41_lxw partition(pt='4')  
    18. select phone,to_phone where key='4'  
    19. insert overwrite table youni_contact41_lxw partition(pt='5')  
    20. select phone,to_phone where key='5'  
    21. insert overwrite table youni_contact41_lxw partition(pt='6')  
    22. select phone,to_phone where key='6'  
    23. insert overwrite table youni_contact41_lxw partition(pt='7')  
    24. select phone,to_phone where key='7'  
    25. insert overwrite table youni_contact41_lxw partition(pt='8')  
    26. select phone,to_phone where key='8'  
    27. insert overwrite table youni_contact41_lxw partition(pt='9')  
    28. select phone,to_phone where key='9';  
     

    该SQL产生11个job,第一个job为生成临时表的job,后续job都依赖它,这时不会有并行启动,

    第一个job完成后,后续的job都会并行启动。

     

     

    运行时间比较:

     

    不启用并行:35分钟

    启用8个并行:10分钟

    启用16个并行:6分钟

     

    当然,得是在系统资源比较空闲的时候才有优势,否则,没资源,并行也起不来。

  • 相关阅读:
    vue+webpack搭建项目基础架构
    vue入门学习篇——父子组件通信
    vue入门学习篇——数据双向绑定原理及简单实现
    vue入门学习篇——挂载点、实例、模版之间的关系
    毫秒转成天、小时、分钟、秒
    可执行jar包的MANIFEST.MF
    fsck系统修复
    HDFS, YARN, HBase, Hive, ZooKeeper端口说明
    解压 tar zxvf 文件名.tar.gz 压缩 tar zcvf 文件名.tar.gz 目标名
    Linux学习笔记之RedHat Enterprise Linux 6.4 使用 Centos 6 的yum源问题
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206946.html
Copyright © 2011-2022 走看看