• 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是否可以并行执行有关!

  • 相关阅读:
    Matlab中将数据保存为txt或dat格式四种方案
    jeecg项目能启动显示登录页面,但是登录失败,报如下错误
    回转体CAD模型的厚度测量
    安装 PostgreSQL 时出错:Warning:Problem running post-install step
    TensorFlow 张量变换
    RNNCell、LSTMCell、tf.nn.static_rnn、tf.nn.static_bidirectional_rnn和tf.nn.bidirectional_dynamic_rnn
    layers.MaxPooling1D
    tf.squeeze
    tf.layers.Conv1D,1维卷积层
    tf.keras.layers.TimeDistributed,将一个layer应用到sample的每个时序步
  • 原文地址:https://www.cnblogs.com/yszd/p/10993207.html
Copyright © 2020-2023  润新知