`
cumtheima
  • 浏览: 253428 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

hive学习总结(7)—hive性能调优

    博客分类:
  • Hive
阅读更多
  1. limit限制调整

--因为使用limit语句时候,是先执行整个查询语句,然后再返回部分结果的

set hive.limit.optimize.enable=true;

set hive.limit.row.max.size=10000;

set hive.limit.optimize.limit.file=10;

 

2.JOIN优化

。。。

 

3. 本地模式

--hive尝试使用本地模式执行查询,要不然hive会使用MapReduce来执行其他所有的查询

set hive.exec.mode.local.auto=true;

 

4.并行执行

set hive.exec.parallel=true;

 

5.严格模式

--对分区表进行查询,在where子句中没有加分区过滤的话,将禁止提交任务(默认:nonstrict)

set hive.mapred.mode=strict;

 

注:使用严格模式可以禁止3种类型的查询:

1)对于分区表,不加分区字段过滤条件,不能执行

2)对于order by语句,必须使用limit语句。

3)限制笛卡尔积的查询(join的时候不使用on,而使用where的)。

 

6.调整mapperreducer个数

set hive.exec.reducers.max=(集群总reduce槽位个数*1.5)/(执行中的查询的平均个数)

 

7.JVM重用

set mapred.job.reuse.jvm.num.tasks=10; --10为重用个数

 

8.索引

索引可以加快含有group by语句的查询的计算速度

 

9.动态分区调整

--动态分区属性:设置为true表示开启动态分区功能(默认为false

hive.exec.dynamic.partition=true;

 

--动态分区属性:设置为nonstrict,表示允许所有分区都是动态的(默认为strict

--设置为strict,表示必须保证至少有一个分区是静态的

hive.exec.dynamic.partition.mode=strict;

 

--动态分区属性:每个mapperreducer可以创建的最大动态分区个数

hive.exec.max.dynamic.partitions.pernode=100;

 

--动态分区属性:一个动态分区创建语句可以创建的最大动态分区个数

hive.exec.max.dynamic.partitions=1000;

 

--动态分区属性:全局可以创建的最大文件个数

hive.exec.max.created.files=100000;

 

--控制DataNode一次可以打开的文件个数

--这个参数必须设置在DataNode$HADOOP_HOME/conf/hdfs-site.xml文件中

<property>

    <name>dfs.datanode.max.xcievers</name>

    <value>8192</value>

</property>

 

10.推测执行

--目的:是通过加快获取单个task的结果以及进行侦测将执行慢的TaskTracker加入到黑名单的方式来提高整体的任务执行效率

 

1)修改 $HADOOP_HOME/conf/mapred-site.xml文件

         <property>

                   <name>mapred.map.tasks.speculative.execution </name>

                   <value>true</value>

         </property>

         <property>

                   <name>mapred.reduce.tasks.speculative.execution </name>

                   <value>true</value>

         </property>

 

2)修改hive配置

set hive.mapred.reduce.tasks.speculative.execution=true;

 

11.单个MapReduce中多个group by

--多个group by操作组装到单个MapReduce任务中

set hive.multigroupby.singlemr=false;

 

12.虚拟列

--hive产生了非预期的或null的时候,可以通过虚拟列进行诊断,判断哪行数据出现问题

INPUT__FILE__NAME  (输入文件名)

BLOCK__OFFSET__INSIDE__FILE  (块内偏移量)

ROW__OFFSET__INSIDE__BLOCK  (行偏移量,需要设置hive.exec.rowoffset=true;启用)

 

13. 其他参数调优

--开启CLI提示符前打印出当前所在的数据库名

set hive.cli.print.current.db=true;

 

--CLI打印出字段名称

hive.cli.print.header=true;

 

--提高聚合的性能

set hive.map.aggr=true;

 

--对于简单的不需要聚合的类似SELECT <col> from <table> LIMIT n语句,不需要起MapReduce job,直接通过Fetch task获取数据

set hive.fetch.task.conversion=more;

1
0
分享到:
评论

相关推荐

    HDP平台的Hive性能调优——Hive高性能最佳实践

    HDP平台的Hive性能调优——Hive高性能最佳实践, HDP平台的Hive性能调优——Hive高性能最佳实践

    Hive调优,数据工程师成神之路.pdf

    Hive调优,数据工程师成神之路。

    hive性能优化

    hive查询优化实践总结 optimizing hive queries, 详细描述了一些经典hive查询优化方法

    Hive性能优化pdf

    数据量大不是问题,数据倾斜是个问题 jobs数比较多的作业运行效率相对比较低,比如及时有几百行的表,如果多次关联汇总,产生十几个jobs,耗时很长,原因是map reduce作业初始化的时间是比较长的

    hive性能调优

    本文主要是从Hive参数配置及应用程序设计与开发的角度,总结几种常用的性能优化方法

    Hive性能优化总结

    查找性能低下的原因;分析性能低下的根源;从配置及程序角度进行优化。

    hive,性能调优,全方面提升认知

    hive,性能调优,全方面提升认知

    hive+Mapreduce 编程性能调优,带HappyETL v0.1介绍

    hive+Mapreduce 编程性能调优

    利用Hive进行复杂用户行为大数据分析及优化案例

    利用Hive进行复杂用户行为大数据分析及...13_Hive中的常见调优 14_Hive中的数据倾斜及解决方案-三种join方式 15_Hive中的数据倾斜及解决方案-group by 16_Hive中使用正则加载数据 17_Hive中使用Python脚本进行预处理

    Hive性能优化

    Hive性能优化 数据倾斜 hql优化 count(distinct)优化

    hive参数优化文档

    hive执行效率低下,可以适当调整默认参数,加快执行速度

    hive优化经典.pdf

    hive 优化经典。pdf文档。 讨论常见的hive执行瓶颈,对sql的写法和效率较低的情况进行分析和调优

    最强HiveSQL开发指南.pdf

    Hive性能调优实战

    HIVE优化实战分享

    HIVE优化实战分享 HIVE优化实战分享 HIVE优化实战分享

    hive-tuning ppt

    Adam Muise是Hortonworks的解决方案工程师,他在多伦多举办的HUG上做了一个关于如何调优Hive的演讲,长达91页的PPT干货十足,从Hive的基本架构、Hive如何存取数据讲起,到如何调优的基本知识,最后介绍了个叫Stinger...

    Hive基础介绍(201804).pptx

    HIVE基础入门资料,主要目录包含Hive概述、HIve SQL基础、...希望授课对象能够掌握数据仓库工具Hive的高级语法、Hive性能调优等的相关知识 具备在真实环境中使用Hive,排查调优Hive的执行语句,处理系统故障等实操技能

    数据仓库中的SQL性能优化(Hive篇)

    一个Hive查询生成多个mapreducejob,一个mapreducejob又有map,reduce,spill,shuffle,sort等多个阶段,所以针对hive查询的优化可以大致分为针对MR中单个步骤的优化(其中又会有细分),针对MR全局的优化,和针对...

    spark优化

    1.Spark性能优化的第一步,就是要在开发Spark作业的过程中注意和应用一些性能优化的基本原则。开发调优,就是要让大家了解以下一些Spark基本开发原则,包括:RDD lineage设计、算子的合理使用、特殊操作的优化等。在...

    Spark性能优化:开发调优篇

    Spark性能优化的第一步,就是要在开发Spark作业的过程中注意和应用一些性能优化的基本原则。开发调优,就是要让大家了解以下一些Spark基本开发原则,包括:RDD lineage设计、算子的合理使用、特殊操作的优化等。在...

Global site tag (gtag.js) - Google Analytics