hive常用参数设置
1.动态分区相关
--开启动态分区
set exec.dynamic.partition=true
--设置动态分区模式为非严格
set hive.exec.dynamic.partition.mode=nonstrict
2.任务数量相关
--设置map任务数量
set hive.map.tasks=100
--设置reduce任务数量
set hive.reduce.tasks=100
3.map阶段相关
--开启mapjoin
set hive.auto.convert.join=true
--设置mr中间压缩
set hive.exec.compress.output=true
--设置小表大小
set hive.smalltable.filesize=50000000
--设置map或reduce任务的执行超时时间
set mapred.task.timeout=120000
--允许map端聚合
set hive.map.aggr=true
--map结束后合并小文件
set hive.merge.mapfiles=true
--设置合并文件后的大小
set hive.merge.size.per.task=128000000
4.reduce阶段相关
--设置每个reduce任务处理的数据量大小
set hive.exec.reducers.bytes.per.reducer=500000
--reduce结束后合并小文件
set hive.merge.mapredfiles=true
5.并行度相关
--开启并行执行
set hive.exec.parallel=true
--设置并行执行个数
set hive.exec.parallel.thread.number=10
--是否开户向量化执行
set hive.vectorized.execution.enabled=false
6.队列,内存相关
--设置yarn队列
set mapreduce.job.queuename=root.default
--设置每个map任务可使用内存上限
set mapreduce.map.memory.mb=10150
--设置每个reduce任务可使用内存上限
set mapreduce.reduce.memory.mb=10150
7.数据倾斜相关
--开启数据倾斜优化
set hive.optimize.skewjoin=ture
--设置数据倾斜的域值
set hive.skewjoin.key=skewjoin_key_threshold(default=10000)
8.JVM相关
--设置map任务中JVM的启动选项
set mapreduce.map.java.opts="-Dfile.encoding=UTF-8";
--设置reduce任务中JVM的启动选项
set mapreduce.reduce.java.opts="-Dfile.encoding=UTF-8";
9.spark相关参数,在Hive on Spark模式下才生效
--设置spark引擎
set hive.execution.engine=spark
--是否合并Spark任务生成的小文件
set hive.merge.sparkfiles=true
--设置并行度
set spark.default.parallelism=1024
--driver内存大小
set spark.driver.memory=5g
set spark.executor.cores=4
set spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8
set spark.executor.instances=60
set spark.executor.memory=20g
set spark.executorEnv.Lang=en_US.UTF-8
set spark.master=yarn-cluster
set spark.memory.fraction=0.8
set spark.serializer=org.apache.spark.serializer.KryoSerializer
set spark.yarn.executor.memoryOverhead=4096