hive性能调优

原文:http://www.tuicool.com/articles/rMvQvm

----------------------------------------------------------------------

  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. 调整 mapper 和 reducer 个数

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;

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

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;



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐系统之 BPR 算法及 Librec的BPR算法实现【1】

【推荐系统之 BPR 算法】 1、关于BPR的论文原文&#xff1a; BPR: Bayesian Personalized Ranking from Implicit Feedback 2、参考1&#xff1a;论文快读 - BPR: Bayesian Personalized Ranking from Implicit Feedback &#xff08;该博主的网站不错&#xff0c;尤其论文快…

ios 筛选_万千网友让quot;低调使用quot;的软件!居然还支持iOS

点击蓝字关注我们昨天的耳朵神器大家感觉怎么样&#xff1f;享受了耳朵今天我们享受一下眼睛~可能很多同学对漫画是情有独钟但是&#xff0c;之前小黑一直介绍的都是安卓端的软件今天要给大家介绍的这款软件是IOS安卓都有终于可以不被IOS的同学吐槽了而且经过测试小黑真的想说一…

Linux卸载/删除多余网卡

卸载 使用命令ifconfig命令查看网卡情况 确认自己使用的是哪一块网卡&#xff0c;然后把其它的网卡都卸载掉。 运行命令ifconfig 网卡名称 down。 如&#xff1a; ifconfig eth1 down 再次运行ifconfig就会发现被卸载掉的网卡没了。现在可以ping 一下内网的IP试试看能不能pin…

CentOS7:JDK1.7.0_80安装

一、安装前检查 执行以下命令&#xff1a; rpm -qa | grep jdk 查看系统是否已经自带openjdk,如果存在 执行以下命令&#xff1a; yum -y remove files files为查出的、系统自带的openjdk相关文件&#xff0c;运行以上命令将相关文件卸载 执行命令 java -version[rootlocalhost…

python海龟绘图画圣诞帽男人_python海龟绘图实例教程

本文以实例形式介绍了python turtle模块即海龟绘图的使用方法&#xff0c;对于需要进行图形编程的朋友相信会有一定的借鉴价值。python turtle模块简介&#xff1a;python2.6版本中引入的一个简单的绘图工具&#xff0c;叫做海龟绘图(turtle graphics)1.使用海龟绘图首先我们需…

spring+mybatis 多数据源整合

原文&#xff1a;http://blog.csdn.net/fhx007/article/details/12530735 ---------------------------------------------------------------------------------- 直接看spring的配置吧 <!-- 数据源配置 --> <bean id"ds1" class"org.apache.commo…

四管前级怎么去掉高低音音调_一些歌曲音调太高怎么才能唱上去??

展开全部首先得提高肺活量 然后就是练声&#xff01;怎 样 练 声&#xff1a;练声的目的1&#xff0c;使歌唱发声系统各器官的肌肉更e68a84e8a2ad62616964757a686964616f31333236373231有力&#xff0c;并能协调一致。2&#xff0c;建立正确的声音概念。3&#xff0c;扩展音域&…

python绘制星空_用python画星空源代码是什么?

用python画星空源代码是什么&#xff1f;用python画星空源代码是from turtle import *from random import random,randintscreen Screen()width ,height 800,600screen.setup(width,height)screen.title("模拟3D星空")screen.bgcolor("black")screen.mod…

Linux - xshell上传文件报错乱码

xshell上传文件报错乱码&#xff0c;解决方法 rz -be 回车 下载sz filename转载于:https://www.cnblogs.com/RzCong/p/8600899.html

java元数据是什么_用存储过程和 JAVA 写报表数据源有什么弊端?

用存储过程和 JAVA 写报表数据源有什么弊端&#xff1f;跟着小编一起来一看一下吧&#xff01;我们在报表开发中经常会使用存储过程准备数据&#xff0c;存储过程支持分步计算&#xff0c;可以实现非常复杂的计算逻辑&#xff0c;为报表开发带来便利。所以&#xff0c;报表开发…

mysql多实例安装启动_MySQL多实例安装启动

Tips&#xff1a;之前我们的一个实例是mysql3306&#xff0c;我们现在再安装一个mysql33071。和之前一样&#xff0c;创建需要的目录文件夹mkdir -p /data/mysql/mysql3307/{data,logs,tmp}创建完 就给文件授权chown -R mysql:mysql /data/mysql/mysql3307/2.进入mysql3307cd /…

用vhdl实现4位加减法计数器_32位加减法器设计

功能特性设计思路基于一位全加器&#xff0c;设计32位并行加法器。并行加法器中全加器的位数与操作数相同&#xff0c;影响速度&#xff08;延时&#xff09;的主要因素是进位信号的传递。主要的高速加法器【1】有基本上都是在超前进位加法器&#xff08;CLA&#xff09;的基础…

用vim + xdebug 来追踪thinkphp的执行过程

tree命令的使用几个有实际应用的参数 -a 这是默认的 -d: 只显式目录, 不需要显式目录下的文件 -L: 列出显式的深度. 当前目录下的所有东西为第一级...在tp下, 有多个Common但是它们的含义不同:Application|- Common (前后台都使用的公共文件所在目录)|- Common (公共函数目录)…

mybatis 中#与$的区别

MyBatis/Ibatis中#和$的区别 #{} 解析的是占位符&#xff1f;可以防止SQL注入&#xff0c;比如打印出来的语句 select * from table where id? 然而${} 则是不能防止SQL注入打印出来的语句 select * from table where id2 实实在在的参数

绿色背景配什么颜色文字_灰色裤子配什么颜色上衣好看

我们许多人都喜欢灰色。灰色是一种很酷的自然色。灰色大气而沉稳。它介于黑白之间&#xff0c;是一种多用途的颜色&#xff0c;与其他颜色搭配将变得时尚而优雅。那么秋冬季节灰色裤子配什么颜色的上衣好看呢&#xff1f;接下来就来看一组时尚大人的灰色裤子穿搭吧。look1 保温…

浮栅场效应管 符号_场效应管主要参数与特点,场效应管与其他管子的对比

场效应晶体管(Field Effect Transistor缩写(FET))简称场效应管。主要有两种类型&#xff1a;结型场效应管(junction FET—JFET)和金属-氧化物半导体场效应管(metal-oxide semiconductor FET&#xff0c;简称MOS-FET)。场效应管由多数载流子参与导电&#xff0c;也称为单极型晶体…

linux软链接

原文地址&#xff1a;http://biyutong.iteye.com/blog/1445699 ------------------------------------------------------------------------ 实例&#xff1a;ln -s /home/gamestat /gamestat linux下的软链接类似于windows下的快捷方式 ln -s a b 中的 a 就是源文件&am…

MySQL主键自增长报duplicate_MySQL使用on duplicate key update引起主键不连续自增

innodb_autoinc_lock_mode中有3种模式,0,1,2&#xff0c;数据库默认是1的情况下,每次使用insert into … on duplicate key update 的时候都会把简单自增id增加,不管是发生了insert还是updateinnodb_autoinc_lock_mode参数详解tradition(innodb_autoinc_lock_mode0) 模式&#…

super go_Go 简单性的价值:来自对 Go 倍加青睐的谷歌软件工程师的自述

点击上方蓝色“Go语言中文网”关注我们&#xff0c;领全套Go资料&#xff0c;每天学习 Go 语言Go 语言最近几年逐渐获得越来越多的开发者的喜欢。在 Go 社区前不久刚刚庆祝Go诞生10周年生日之际&#xff0c;谷歌云软件工程师 Benjamin Congdon 发表个人博客(11 月 11 日发表)&a…

判断鼠标是否在元素上_是否清扫保洁、是否雾撒降尘?江城环卫车装上了北斗,动动鼠标就知道了...

楚天都市报12月1日讯(记者卢成汉 通讯员金婵 潘婷)环卫车装上北斗定位系统&#xff0c;它是否上路进行清扫保洁&#xff0c;是否雾撒降尘。城管队员通过手机或电脑&#xff0c;就可以查到它的运行状态。1日&#xff0c;东湖高新区城管执法局称&#xff0c;该区运行的北斗智能环…