继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Hive 调优

慕哥9229398
关注TA
已关注
手记 1099
粉丝 198
获赞 911

列出调优参数列表

-- group by,join 数据倾斜set hive.groupby.skewindata=true; --如果是group by过程出现倾斜 应该设置为trueset hive.skewjoin.key=100000; --这个是join的键对应的记录条数超过这个值则会进行分拆,值根据具体数据量设置set hive.optimize.skewjoin=true;--如果是join 过程出现倾斜 应该设置为true-- 控制map数量set mapred.min.split.size.per.node; -- 一个节点上split的至少的大小set mapred.min.split.size.per.rack; -- 一个交换机下split至少的大小set mapred.max.split.size; -- 一个split最大的大小set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat -- map端做combineset spark.hadoop.mapreduce.input.fileinputformat.split.maxsize=67108864; --spark控制map数量set spark.hadoop.mapreduce.input.fileinputformat.split.minsize=67108864; --spark控制map数量



-- 控制reduce数量 (计算reducer数的公式很简单N=min( hive.exec.reducers.max ,总输入数据量/ hive.exec.reducers.bytes.per.reducer ))set mapred.reduce.tasks; -- 强制指定reduce的任务数量set hive.exec.reducers.bytes.per.reducer; -- 每个reduce任务处理的数据量,默认为1000^3=1Gset hive.exec.reducers.max; -- 每个任务最大的reduce数,默认为999-- map 端聚合set hive.map.aggr = true; -- 是否在 Map 端进行聚合,默认为 Trueset hive.groupby.mapaggr.checkinterval = 100000; -- 预先取n条聚合检查set hive.map.aggr.hash.min.reduction=0.5; -- 如果聚合后的条数/checkinterval>0.5,则不再聚合


-- 小文件合并set hive.merge.mapfiles = true -- 是否和并 Map 输出文件,默认为 Trueset hive.merge.mapredfiles = false -- 是否合并 Reduce 输出文件,默认为 Falseset hive.merge.size.per.task = 256*1000*1000 -- 合并文件的大小

-- mapreduce运行时JVM内存set mapreduce.map.memory.mb = 4096set mapreduce.reduce.memory.mb = 4096-- spark参数调优set spark.executor.memroy=3G; -- 设置executor运行内存set spark.yarn.executor.memoryOverhead=??? -- 设置堆外内存大小set spark.driver.memory=14G; -- XT调整driver内存set spark.executor.memory=4G; -- 调整executor内存set spark.executor.cores=2; -- 调整executor核数set spark.sql.shuffle.partitions=4000; -- 调整并发度set spark.dynamicAllocation.maxExecutors=2000; -- 调整最大资源使用量

具体可参考https://www.cnblogs.com/xd502djj/p/3799432.html



作者:Meet相识_bfa5
链接:https://www.jianshu.com/p/8954e5ee39e8


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP