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亚太峰会会议资料下载.< ...
随机推荐
- [洛谷P4346][CERC2015]ASCII Addition
题目大意:给一个像素的$a+b$,每个数字为$7\times5$的像素,每两个数字之间有间隔 题解:乱搞读入 卡点:无 C++ Code: #include <cstdio> #inclu ...
- vue-cli脚手架的.babelrc文件
虽然es6还没被浏览器全部支持,但是使用es6是大势所趋,所以babel应运而生将es6代码转换成浏览器能够识别的代码 什么是.babelrc文件呢? 熟悉linux的同学一定知道,rc结尾的文件通常 ...
- Vitamio介绍及使用
一.Vitamio介绍 1.1 Vitamio是什么? Vitamio是Android平台视音频播放组件,支持播放几乎格式的视频以及主流网络视频流(http/rtsp/mms等),详细的中文介绍: 这 ...
- 转 Android_开源框架_AndroidUniversalImageLoader网络图片加载
转自:http://www.cnblogs.com/wanqieddy/p/3836485.html 1.功能概要 Android-Universal-Image-Loader是一个开源的UI组件程序 ...
- tips 前端 各个设备的页面尺寸的media query 与页面高度的经验总结
有段时间 扑了一个多月的在一个wifi的前端项目上 快做完时 各种小问题一堆一堆的修复 处理了一些很零散的问题 因为页面有一个所有页面都有一个背景色 有的页面有背景图 主要重点是移动前端的方向 因为现 ...
- Redis为什么单进程单线程也那么快
[转] http://www.syyong.com/db/Redis-why-the-use-of-single-process-and-single-threaded-way-so-fast.htm ...
- 【bzoj3211】花神游历各国&&【bzoj3038】上帝造题的七分钟2
bzoj3038]上帝造题的七分钟2 Description XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. “第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟, ...
- HDU 5251 矩形面积(二维凸包旋转卡壳最小矩形覆盖问题) --2015年百度之星程序设计大赛 - 初赛(1)
题目链接 题意:给出n个矩形,求能覆盖所有矩形的最小的矩形的面积. 题解:对所有点求凸包,然后旋转卡壳,对没一条边求该边的最左最右和最上的三个点. 利用叉积面积求高,利用点积的性质求最左右点和长度 ...
- 寻找道路(NOIP2014)神奇之题。。
原题传送门 这道题嘛.. 首先根据题目,我们要先知道哪些点能够到达终点.(反向BFS) 然后我们再求最短路的途中,必须随时判断周围的点是否被第一次BFS标记过.. 所以再来一次BFS. 数组记得清零, ...
- MVC5 WebAPI 跨域处理
问题描述: 在使用ASP.NET的MVC5进行WebAPI开发的时候,在跨域的情况下会报跨域的错, No 'Access-Control-Allow-Origin' header is present ...