`
cumtheima
  • 浏览: 255949 次
  • 性别: 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
分享到:
评论

相关推荐

    Hive调优全方位指南.pdf

    Hive调优全方位指南,总结了25条关于Hive调优的经验,对于大数据及hive工程师是不可多得的资源。

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

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

    hadoop和hive调优个人总结

    本文将总结个人在学习和测试Hive过程中的调优经验,包括Datanode的热插拔、启动自动Balancer、问题解决等方面。 一、 Datanode的热插拔 Datanode的热插拔是指在Hadoop集群中动态添加或删除Datanode节点的过程。...

    hive性能优化

    根据提供的文件内容,可以总结出以下关于Hive性能优化的知识点: 1. Hive查询优化实践 - Owen O'Malley作为Hortonworks的创始人兼架构师,长期从事Hive开发工作,与客户密切合作,并有着Hadoop MapReduce与安全性...

    Hive性能优化pdf

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

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

    总结来说,Hive性能调优需要考虑多个方面,包括查询执行引擎的选择、数据存储格式的优化、统计信息的使用、数据存储架构的设计和任务调度的合理配置。通过上述最佳实践,能够有效地提升Hive查询的性能,从而更好地...

    hive调优总结文档-hive tuning ppt

    以下是对"Hive调优总结文档-hive tuning ppt"中可能涉及的多个知识点的详细阐述: 1. **元数据优化**: - **分区策略**:根据业务需求,合理设计分区字段,减少不必要的数据扫描,例如按日期、地区等进行分区。 -...

    hive性能调优

    Hive性能调优是一个复杂但关键的环节,涉及对Hive的参数配置以及针对应用程序的设计与开发进行优化。Hive是一个数据仓库基础工具,用于将结构化数据映射成数据库表,并通过HiveQL(简称HQL)查询语言执行数据处理...

    Hive性能优化总结

    ### Hive性能优化总结 #### 一、Hadoop与Hive计算框架特性引发的问题 Hadoop作为大数据处理平台,其核心优势在于能够高效处理大规模数据集。然而,在具体的应用场景中,尤其是在Hive作为数据仓库使用时,仍存在...

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

    "Hive性能调优全方面提升认知" 本篇文章将从四个方面对Hive性能调优进行详细的讲解,分别是Hive建表设计、HiveHQL语句优化、Hive配置参数调整和MapReduce引擎调整。 Hive性能调优的重要性 在大数据领域中,Hive...

    大公司大数据量hive调优实践

    总结,Hive调优是一个综合性的工程,涉及到SQL优化、数据组织、硬件配置、并行度控制等多个方面。通过持续的监控和调整,可以显著提升大数据量场景下的查询性能。在实际操作中,应根据具体业务需求和环境进行灵活...

    hive参数优化总结

    Hive 参数优化总结 Hive 是一个基于 Hadoop 的数据仓库工具,用于对大规模数据进行查询、分析和处理。为了提高 Hive 的性能和效率,参数优化是非常重要的一步。本文档将总结 Hive 参数优化的相关知识点,并对 Hive ...

    Hive性能优化

    Hive性能优化是大数据处理中一个非常关键的环节,它能够显著提高查询效率,缩短查询时间。 首先,数据倾斜是导致Hive性能低下的主要原因之一。所谓数据倾斜,是指在MapReduce过程中,数据分布不均匀,导致某些节点...

    Hive及Hadoop作业调优

    文档内容围绕Hadoop生态系统中的两个主要组件Hive和Hadoop进行展开,对它们的工作原理、性能调优策略等方面进行了深入讨论。 首先,Hive是建立在Hadoop上的一个数据仓库工具,可以将结构化的数据文件映射为一张...

    hive调优策略

    ### Hive调优策略详解 #### 一、理解Hive调优的重要性 在大数据处理领域,Apache Hive 是一种...通过对上述知识点的学习和实践,可以有效提升Hive在处理大规模数据集时的性能和效率,满足业务需求的同时降低成本。

    hive参数优化文档

    除了上述针对Hive本身的优化外,还可以从Job的配置层面进行调优。 1. **资源分配**: - 根据实际需求调整`yarn.nodemanager.resource.cpu-vcores`和`yarn.nodemanager.resource.memory-mb`等参数,确保足够的CPU和...

    Hive调优全方位指南.docx

    Hive性能优化主要包括以下几个方面: 1. **数据倾斜**:避免查询过程中数据分布不均导致的处理效率低下。 2. **并行执行**:开启并行执行可以提高查询速度。 3. **小文件问题**:通过合并小文件或调整MapReduce参数...

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

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

    hive工作调优小结

    ### Hive工作调优小结 #### 一、Map阶段的优化(Map Phase) 在Hive中,Map任务的数量直接影响到整个Hive作业的性能。Map任务的数量由以下公式计算得出: \[ \text{num_Map_tasks} = \max[\text{Mapred.min.split...

Global site tag (gtag.js) - Google Analytics