hive优化参数配置
配置参数说明
--mapjoin
set hive.auto.convert.join=true;
set hive.auto.convert.join.noconditionaltask=true;
set hive.auto.convert.join.noconditionaltask.size=10000000;
set hive.mapjoin.smalltable.filesize=200000000;--输入小文件合并,若读取小文件较多,则设置在map端进行小文件合并参数
set hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;-- 执行Map前进行小文件合并
set hive.hadoop.supports.splittable.combineinputformat = true;
--其中一种方版本
set mapreduce.input.fileinputformat.split.maxsize = 256000000;
set mapreduce.input.fileinputformat.split.minsize =256000000;
set mapreduce.input.fileinputformat.split.minsize.per.node=256000000;
set mapreduce.input.fileinputformat.split.minsize.per.rack=256000000;
--另一种版本(老版本,最好都设置)
SET mapred.max.split.size = 256000000; //设置mapper拆分大小
SET mapred.min.split.size = 256000000;
SET mapred.min.split.size.per.node = 256000000;
SET mapred.min.split.size.per.rack = 256000000;--开启输出小文件合并(rcfile和orc需要特殊设置才能进行文级别的合并,parquet、textfile、sequencefile默认进行文件级别的合并)
set hive.merge.mapfiles = true;--开启只有map(map-only)操作结束时小文件输出合并
set hive.merge.mapredfiles = true;--开启有MR操作结束时小文件输出合并
set hive.merge.size.per.task = 256000000;--合并后每个文件的大小
set hive.merge.smallfiles.avgsize=256000000;--当输出文件的平均大小小于256000000时,启动一个独立的MR任务进行文件合并,触发小文件合并的阀值
set hive.merge.orcfile.stripe.level=false; --当这个参数设置为true,orc文件进行stripe Level级别的合并,当设置为false,orc文件进行文件级别的合并。
set hive.merge.rcfile.block.level=false;--当这个参数设置为true,rcfile文件进行block Level级别的合并,当设置为false,rcfile文件进行文件级别的合并。--开启并发
SET hive.exec.parallel = true; //开启任务并行执行
SET hive.exec.parallel.thread.number = 16; //同一个sql允许并行任务的最大线程数--设置reduce限制,以下只设置其中一个即可
--设置每个reducer处理的数据(默认是1G,设置为5G)
set hive.exec.reducers.bytes.per.reducer=5120000000;
--设置reduce个数
set mapred.reduce.tasks=50;--map或reduce执行缓慢设置
--map
set mapreduce.map.cpu.vcores=1;
SET mapreduce.map.memory.mb=4096;
SET mapreduce.map.java.opts=-Xmx3572M;
--reduce
--REDUCE YARN 申请内存
set mapreduce.reduce.cpu.vcores=1;
set mapreduce.reduce.memory.mb=4096;
--REDUCE JVM 内存
set mapreduce.reduce.java.opts=-Xmx3572M;--join数据倾斜
set hive.optimize.skewjoin=true;
--groupby数据倾斜优化
set hive.groupby.skewindata=true;--groupby时开启map端部分聚合,相当于Combiner
set hive.map.aggr=true;--开启MR中间结果压缩
set hive.exec.compress.intermediate=true;--开启hive中间传输数据压缩功能
set mapred.map.output.compression.codec= org.apache.hadoop.io.compress.SnappyCodec
--开启MR最终输出Reduce输出压缩
set hive.exec.compress.output=true; --开启hive最终输出数据压缩功能
set mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
set mapred.output.compression.type=BLOCK;--设置mapreduce最终数据输出压缩为块压缩,只有SEQUENCEFILE格式需要设置--设置创建文件的格式,例如: create table t1 as select * from t2;
SET hive.default.fileformat = orc;--动态分区
SET hive.exec.dynamic.partition=true; --是否允许动态分区
SET hive.exec.dynamic.partition.mode=nostrict; --分区模式设置
SET hive.exec.max.dynamic.partitions=100000; --允许动态分区的最大数量
SET hive.exec.max.dynamic.partitions.pernode =10000; --单个节点上的mapper/reducer允许创建的最大分区--向量化执行
set hive.vectorized.execution.enabled=TRUE;
--开启mapreduce的递归查询模式
set mapreduce.input.fileinputformat.input.dir.recursive=true--频繁GC
--GC(Garbage Collecting)是JVM特有垃圾回收机制;在Hadoop集群应用程序运行时,如果堆内存设置小或者小文件太多,都会引发频繁的GC,浪费计算资源并导致任务执行时间长甚至失败。
--MAP阶段GC时间40%以上,OPTS参数调整:
set mapreduce.map.cpu.vcores=$[目前值]*2
set mapreduce.map.memory.mb =$[目前值]*2
set mapreduce.map.java.opts=$[目前值] *2
--REDUCE阶段GC时间40%以上,OPTS参数调整:
set mapreduce.reduce.cpu.vcores=$[目前值]*2
set mapreduce.reduce.memory.mb=$[目前值]*2
set mapreduce.reduce.java.opts=$[目前值]*2
配置示例
demo1:
--mapjoin
set hive.auto.convert.join=true;
set hive.auto.convert.join.noconditionaltask=true;
set hive.auto.convert.join.noconditionaltask.size=10000000;
set hive.mapjoin.smalltable.filesize=200000000;
--若读取小文件较多,则设置在map端进行小文件合并参数
set hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
set hive.hadoop.supports.splittable.combineinputformat = true;
set mapreduce.input.fileinputformat.split.maxsize = 256000000;
set mapreduce.input.fileinputformat.split.minsize.per.node=256000000;
set mapreduce.input.fileinputformat.split.minsize.per.rack=256000000;
--配置MR任务结束后进行文件合并
set hive.merge.mapfiles = true;
set hive.merge.mapredfiles = true;
set hive.merge.size.per.task = 256000000;
set hive.merge.smallfiles.avgsize=256000000;
set hive.merge.orcfile.stripe.level=false; --当这个参数设置为true,orc文件进行stripe Level级别的合并,当设置为false,orc文件进行文件级别的合并。
set hive.merge.rcfile.block.level=false;--当这个参数设置为true,rcfile文件进行block Level级别的合并,当设置为false,rcfile文件进行文件级别的合并。SET hive.exec.parallel = true;
SET hive.exec.parallel.thread.number = 16;
SET mapred.max.split.size = 256000000;
SET mapred.min.split.size.per.node = 256000000;
SET mapred.min.split.size.per.rack = 256000000;
--设置reduce限制
set hive.exec.reducers.bytes.per.reducer=5000000000;
--map或reduce执行缓慢设置
SET mapreduce.map.memory.mb=4096;
SET mapreduce.map.java.opts=-Xmx3572M;
set mapreduce.reduce.memory.mb=4096;
set mapreduce.reduce.java.opts=-Xmx3572M;
--数据倾斜
--join数据倾斜
set hive.optimize.skewjoin=true;
--groupby数据倾斜优化
set hive.groupby.skewindata=true;--启用压缩
SET mapred.output.compress = true;
SET hive.exec.compress.output = true;
SET hive.default.fileformat = orc;
demo2:
--mapjoin
set hive.auto.convert.join=true;
set hive.auto.convert.join.noconditionaltask=true;
set hive.auto.convert.join.noconditionaltask.size=10000000;
set hive.mapjoin.smalltable.filesize=200000000;
--若读取小文件较多,则设置在map端进行小文件合并参数
set hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
set hive.hadoop.supports.splittable.combineinputformat = true;
set mapreduce.input.fileinputformat.split.maxsize = 2560000000;
set mapreduce.input.fileinputformat.split.minsize.per.node=2560000000;
set mapreduce.input.fileinputformat.split.minsize.per.rack=2560000000;SET mapred.max.split.size = 2560000000;
SET mapred.min.split.size.per.node = 2560000000;
SET mapred.min.split.size.per.rack = 2560000000;--配置MR任务结束后进行文件合并
set hive.merge.mapfiles = true;
set hive.merge.mapredfiles = true;
set hive.merge.size.per.task = 2560000000;
set hive.merge.smallfiles.avgsize=2560000000;
set hive.merge.orcfile.stripe.level=false;
set hive.merge.rcfile.block.level=false;SET hive.exec.parallel = true;
SET hive.exec.parallel.thread.number = 32;
--设置reduce限制
set hive.exec.reducers.bytes.per.reducer=5000000000;
--map或reduce执行缓慢设置
SET mapreduce.map.memory.mb=8192;
SET mapreduce.map.java.opts=-Xmx7186M;
set mapreduce.reduce.memory.mb=8192;
set mapreduce.reduce.java.opts=-Xmx7186M;
--数据倾斜
set hive.optimize.skewjoin=true;
--启用压缩
SET mapred.output.compress = true;
SET hive.exec.compress.output = true;
SET hive.default.fileformat = orc;
hive优化参数配置相关推荐
- HiveSQL运行优化参数配置
HiveSQL运行优化参数配置 HiveSQL常用数据处理语句 HiveSQL中复杂数据类型操作 我们平时在使用hive执行一些SQL任务时.经常会遇到执行速度很慢,数据倾斜,资源不够用等问题.那是因 ...
- mysql属性配置提高查询_MYSQL性能优化-安装时优化参数配置提高服务性能
MYSQL性能优化一直是个头痛的问题,目前大多都是直接把页面html静态页面或直接使用了缓存技术,下面我就mysql本身的性能优化来分享一下. 安装时优化参数配置提高服务性能 在Linux下安装Mys ...
- vsan主机高级优化参数配置
vsan主机高级优化参数配置 https://blog.51cto.com/roberthu/2049330 esxi6.0 vc6.0 vsan6.2高级参数优化 esxcfg-advcfg -s ...
- HIVE常用参数配置
HIVE参数配置 --查看参数使用:set 或者set -v; --设置参数使用:set key=value; --设置reduce个数(默认-1) mapreduce.job.reduces=- ...
- [Hive_add_8] Hive 常用参数配置
0. 说明 记录 Hive 常用参数的配置 1. 设置本地模式 让 Hive 自动使用 Hadoop 的本地模式运行作业,提升处理性能 适合小文件,一般用于测试 set hive.exec.mode. ...
- hive常用参数配置设置
hive.exec.mode.local.auto 决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行) true hive.exec.mode.local.auto ...
- Nginx工作原理及优化参数配置
1.master和worker Nginx启动后,是由两个进程组成的.master(管理者)和worker(工作者). 一个Nginx只有一个master,但可以有多个worker. Nginx接收到 ...
- Nginx原理与优化参数配置
Nginx的工作机制 Nginx 可以处理多少个请求由 work 来决定, work 越多处理的请求就越多, 它底层是通过一个争抢机制, 默认会启动两个进程, 分别是 Master & wor ...
- 【presto】presto 参数配置优化
前言 之前公司的 presto 服务一直不是很稳定,随着资源组,配置优化,代码二次开发.presto 服务基本上已经趋于稳定了.这个记录下 presto 服务参数配置都做过哪些优化. 这边生产环境的 ...
最新文章
- 自加计数器c语言程序,计数器 加1 C语言 程序.doc
- ngx_lua module 模块安装
- Spring集成Shiro框架实战
- 编译32位_玩转Android10源码开发定制(11)内核篇之安卓内核模块开发编译
- php mysql增删查改 主码不能修改_PHP 数据库练习
- CVPR 2020 论文大盘点—目标跟踪篇
- 面向对象的三大特征之一继承
- python兼职程序员工资-没想到,学会Python即使不做程序员都能月入过万!
- 梯度、散度和旋度大揭秘
- Tableau——嵌套组合饼图
- 21世纪最牛逼思想家的心路历程小结———哲学、宿命论
- 来自Google的围棋AlphaGo
- 8月22-23日 【广州】《社区商业项目开发定位、规划、招商、运营与模式创新》
- html5 application cache 空间限制,HTML5离线存储之Application Cache
- SAP ABAP 数字类型精讲
- The Old Man and The Sea 老人与海 by Ernest Hemingway 欧内斯特-海明威
- 《金字塔原理》听书笔记
- python爬取新浪新闻
- css 去除 button 点击之后的默认样式
- 练习4/5(继承)Java