zoukankan      html  css  js  c++  java
  • Hive性能优化【核心思想、运行模式、并行计算】

    一.核心思想

      把HQL当做MapReduce程序去优化。

      注意,以下SQL不会转为MapReduce执行:

        1.select仅查询本表字段。

        2.where仅对本表字段做条件过滤。

    二.启动Hive

      

      备注:Hive依赖Zookeeper和HDFS,因此需要先开启!

    三.Explain

      Explain显示执行计划,Explain [EXTENDED] query

      1.普通查询,不执行mapreduce任务

        1.1.普通查询

        

        1.2.不带EXTENDED的Explain

        

        1.3.带EXTENDED的Explain

        

      2.执行count(*),执行mapreduce

        2.1 普通查询

        

        2.2不带EXTENDED的Explain

         

         

        2.3带EXTENDED的Explain

        

        

        

        

    四.Hive运行模式

      1.本地模式

         1.查看默认配置

          

          默认为集群模式。

         2.设置本地模式

          

        3.查看设置成本地模式后对查询性能的影响

          

          注意:

            1.与2.1普通查询比较,速度提升4倍左右,一般仅适用于本地测试!

            2.hive.exec.mode.local.auto.inputbytes.max默认值为128M,表示加载文件的最大值,若大于该配置仍会以集群模式运行。

      2.集群模式

    五.并行计算

      通过设置以下参数开启并行计算模式:set hive.exec.parallel=true;

      注意:

        1.hive.exec.parallel.thread.number【一次SQL计算中运行并行执行的job个数的最大值】

        2.需要提前关闭本地模式。

      1.默认情况,关闭本地模式:

        

        

        

        

      2.开启并行计算

        

        

        

        

        注意:性能大概提升25%,这主要和SQL是否可以并行执行有关!

  • 相关阅读:
    SWT中如何居中显示?
    项目一 默认构造函数和带参数的构造函数
    解决ubuntu中java1.6显示中文乱码问题
    网络程序为什么要处理SIGPIPE
    SQL 数据类型大全
    poj1275 差分约束
    Oracle分组
    Android利用ViewPager实现滑动广告板
    扩展spring mvc的拦截器,实现AOP的环绕增加效果
    [Ext.Net]GridPanel之存储过程分页Sql版本
  • 原文地址:https://www.cnblogs.com/yszd/p/10993207.html
Copyright © 2011-2022 走看看