Hive 性能调优
- 避免执行MR
- select * or select field1,field2
- limit 10
- where语句中只有分区字段或该表的本地字段
- 使用本地set hive.exec.mode.local.auto=true;
- EXPLAIN的使用
hive对sql的查询计划信息解析
EXPLAIN SELECT COUNT(1) FROM T_TABLE;
EXPLAIN EXTENDED SELECT COUNT(1) FROM T_TABLE;(更为详细)
- 本地MR(提高本地资源利用率,一般在测试时使用)
- 本地模式设置
set mapred.job.tracker=local;
set hive.exec.mode.local.auto=true; (开启自动本地模式)
set hive.exec.mode.local.auto.inputbytes.max(默认134217728,设置local mr的最大输入数据量,当输入数据量小于这个值的时候会采用local mr的方式)
set hive.exec.mode.local.auto.input.files.max (默认是4,
设置local mr的最大输入文件个数,当输入文件个数小于这个值的时候会采用local mr的方式)
- 本地模式设置
开启并行计算
set hive.exec.parallel=true; (增加集群利用率)设置严格模式
set hive.mapred.mode=strict | nostrict;strict可以禁止三种类型的查询
1、分区表必须使用 where 分区条件过滤
2、Order by语句必须使用 limit
3、限制笛卡尔积查询
- 调整mapper和reducer的数量
- 太多map导致启动产生过多开销
- 按照输入数据量大小确定reducer数目,
- set mapred.reduce.tasks= 默认3
- dfs -count /分区目录/*
- hive.exec.reducers.max设置阻止资源过度消耗
JVM重用
set mapred.job.reuse.jvm.num.task=10 (会一直占用task槽,占用内存)
排序语句
order by : 全局排序
sort by : 是单reduce排序
distribute by : 分区字段排序;sort by distribute by 配合使用(相同数据会被分发到同一个reduce上,类似order by)
select id from t_bucket distribute by id sort by id desc limit 10;
cluster by
可以确保类似的数据的分发到同一个reduce task中,并且保证数据有序防止所有的数据分发到同一个reduce上,导致整体的job时间延长cluster by语句的等价语句
distribute by idsort by id == cluster byMap-side聚合
set hive.map.aggr=true;
这个设置可以将顶层的聚合操作放在Map阶段执行,从而减轻清洗阶段数据传输和Reduce阶段的执行时间,提升总体性能。该设置会消耗更多的内存
Hive 性能调优的更多相关文章
- Hive(十)Hive性能调优总结
一.Fetch抓取 1.理论分析 Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算.例如:SELECT * FROM employees;在这种情况下,Hive可以简单 ...
- HDP Hive性能调优
(官方文档翻译整理及总结) 一.优化数据仓库 ① Hive LLAP 是一项接近实时结果查询的技术,可用于BI工具以及网络看板的应用,能够将数据仓库的查询时间缩短到15秒之内,这样的查询称之为Int ...
- Hive性能调优(二)----数据倾斜
Hive在分布式运行的时候最害怕的是数据倾斜,这是由于分布式系统的特性决定的,因为分布式系统之所以很快是由于作业平均分配给了不同的节点,不同节点同心协力,从而达到更快处理完作业的目的. Hive中数据 ...
- Hive性能调优(一)----文件存储格式及压缩方式选择
合理使用文件存储格式 建表时,尽量使用 orc.parquet 这些列式存储格式,因为列式存储的表,每一列的数据在物理上是存储在一起的,Hive查询时会只遍历需要列数据,大大减少处理的数据量. 采用合 ...
- Hive性能调优
表分为内部表.外部表.分区表,桶表.内部表.外部表.分区表对应的是目录,桶表对应目录下的文件.
- Spark性能调优之解决数据倾斜
Spark性能调优之解决数据倾斜 数据倾斜七种解决方案 shuffle的过程最容易引起数据倾斜 1.使用Hive ETL预处理数据 • 方案适用场景:如果导致数据倾斜的是Hive表.如果该Hiv ...
- Spark 常规性能调优
1. 常规性能调优 一:最优资源配置 Spark性能调优的第一步,就是为任务分配更多的资源,在一定范围内,增加资源的分配与性能的提升是成正比的,实现了最优的资源配置后,在此基础上再考虑进行后面论述的性 ...
- Informatica_(6)性能调优
六.实战汇总31.powercenter 字符集 了解源或者目标数据库的字符集,并在Powercenter服务器上设置相关的环境变量或者完成相关的设置,不同的数据库有不同的设置方法: 多数字符集的问题 ...
- Spark Streaming性能调优详解
Spark Streaming性能调优详解 Spark 2015-04-28 7:43:05 7896℃ 0评论 分享到微博 下载为PDF 2014 Spark亚太峰会会议资料下载.< ...
随机推荐
- js中哪些语句在if语句中默认为真
结论:js中有一个函数是:Boolean(value)这个函数把一个value值转换成相应的boolean值. 当value为以下值是为true:1.任意的非空字符串 .2.任意的非0数字 而当val ...
- async-http
android-async-http开源框架可以是我们轻松的获取网络数据或者向服务器发送数据,使用起来也很简单,下面做简单介绍,具体详细使用看官网:https://github.com/loopj/a ...
- 封装一下webform的公用方法:对于软件我把这些全封装在pagebase里面,这样所有的页面只调用一句 Init()即可,其他的全在页面上配置
/// <summary> /// 绑定新闻列表,带分页与查询 /// </summary> /// <param n ...
- 官网cocos2d
http://cocos2d.spritebuilder.com/download 官网 https://github.com/cocos2d/cocos2d-spritebuil ...
- Linux应用层的定时器Timer使用详解【转】
转自:http://blog.csdn.net/wwwtovvv/article/details/8601528 版权声明:本文为博主原创文章,未经博主允许不得转载. linux下定时器的使用 -- ...
- ubuntu14.04LTS openssh-server 手动安装配置步骤
先用能上网的机器下载:zlib-1.2.5.tar.bz2.openssh-5.6p1.tar.gz.openssl-0.9.8o.tar.tar,接下来,准备安装. 步骤如下: 1.首先解压安装zl ...
- Selenium2+python自动化17-JS处理滚动条【转载】
前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候 ...
- 详解TCP的三次握手四次断开
本文将分别讲解经典的TCP协议建立连接(所谓的“3次握手”)和断开连接(所谓的“4次挥手”)的过程. 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务.TCP提 ...
- bootstrap只有遮罩层没有对话框的解决方法
前端很差很差,猜测应该是各种js冲突的问题,换了一个jquery或bootstrap版本的不兼容. https://blog.csdn.net/Pabebe/article/details/70230 ...
- android 效果
1.TextView 有边界的水波效果: android:background="?android:attr/selectableItemBackground" 无边界的水波效果: ...