栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive 基于常用参数的调优(Tez和MR引擎)

Hive 基于常用参数的调优(Tez和MR引擎)

1.说明

Hive的常用计算引擎有MR、Tez和Spark,本篇博客主要是基于MR和Tez的参数调优,由于Hive的任务是在Yarn上提交的,所以Yarn作为一个资源调度器,可用的资源也需要进行配置。

2.Yarn参数个性化配置

配置文件名:yarn-site.xml

参数名推荐值参数说明
yarn.nodemanager.resource.cpu-vcores    当前数据节点的可用最大CPU核数*80%Container可以使用的的CPU数
yarn.scheduler.maximum-allocation-vcores当前数据节点的可用最大CPU核数*80%单个任务最大可用的CPU数
yarn.scheduler.minimum-allocation-vcores1单个任务最小可用的CPU数
yarn.nodemanager.resource.memory-mb当前数据节点的物理内存总量的80%可分配给Container的内存大小
yarn.scheduler.maximum-allocation-mb当前数据节点的物理内存总量的80%单个任务最大可用的内存大小
yarn.scheduler.minimum-allocation-mb1024单个任务最小可用的内存大小

3.Hive参数个性化配置(MR)
参数名推荐值参数说明
hive.execution.enginemr选择执行引擎
hive.exec.paralleltrue是否并行执行任务,默认值为false。
hive.exec.compress.intermediatetrue否对hive查询中的数据进行压缩,当map中间数据较多时,可以选择开启压缩,压缩形式推荐Snappy,默认值为false。
mapreduce.map.output.compress.codecorg.apache.hadoop.io.compress.SnappyCodec在开启压缩时,该参数生效,Snappy结合了低CPU开销和好的压缩执行效率,适合中间文件的压缩和解压,默认值为org.apache.hadoop.io.compress.DefaultCodec。
mapreduce.map.memory.mb6144Mapper的Container的堆内存大小,根据实际情况设置,为1024的倍数,单位为MB。设置范围大小在3072-20480之间。
mapreduce.map.cpu.vcores1每个Mapper的可使用最大的CPU核数,默认值为1。
mapreduce.reduce.memory.mb6144Reducer的Container的堆内存大小,根据实际情况设置,为1024的倍数,单位为MB。
mapreduce.reduce.cpu.vcores1每个Reducer的可使用最大的CPU核数,默认值为1。
hive.exec.reducers.max100允许的最大reduce数量,需要根据reduce的数据量来判断,默认值为1009。
mapred.reduce.tasks100指定reduce的个数,默认为-1。

4.Hive参数个性化配置(Tez)
参数名推荐值参数说明
hive.execution.enginetez选择执行引擎
hive.tez.input.formatorg.apache.hadoop.hive.ql.io.CombineHiveInputFormat如果小文件过多,导致map数很多时,可以使用org.apache.hadoop.hive.ql.io.CombineHiveInputFormat来合并小文件,减少过多的map任务数,默认值为org.apache.hadoop.hive.ql.io.HiveInputFormat。
hive.tez.container.size10240Tez的Container的堆内存大小,根据实际情况设置,为1024的倍数,单位为MB。设置范围大小在3072-20480之间。
tez.runtime.io.sort.mb128Hive输出排序需要的内存大小,不超过2G,单位为MB。
tez.am.container.reuse.enabledtrueTez的AM容器设置为可重用。
tez.runtime.shuffle.fetch.buffer.percent0.90运行期间,用于shuffle的buffer大小比例。
tez.runtime.unordered.output.buffer.size-mb1024如果不直接写入磁盘,使用的缓冲区大小。建议设置为10% * hive.tez.container.size。
hive.exec.reducers.max100允许的最大reduce数量,需要根据reduce的数据量来判断,默认值为1009。
mapred.reduce.tasks100指定reduce的个数,默认为-1。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/389415.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号