hive on spark的几个参数调整

spark.executor.cores : 每个executor允许分配的cpu ,建议是在5-7之间

spark.executor.memory : yarn.nodemanager.resource.memory-mb * (spark.executor.cores / yarn.nodemanager.resource.cpu-vcores)
spark.yarn.executor.memoryOverhead :15-20% of spark.executor.memory
在 Spark on YARN 模式下,spark.executor.cores建议是5,6,7。整体的原则是尽量分割的均衡,不要浪费CPU。
例如yarn.nodemanager.resource.cpu-vcores=30,那么5是合适的,这样正好整除,可以分配6个executor .
若是yarn.nodemanager.resource.cpu-vcores=19,那么6是合适的,可以分配3个,浪费了一个cpu,如是5的话也只能3个,浪费了两个cpu.

spark.executor.memory 建议的计算公式是: yarn.nodemanager.resource.memory-mb * (spark.executor.cores / yarn.nodemanager.resource.cpu-vcores)

例如我们的线上配置
yarn.nodemanager.resource.memory-mb 106496=104G
spark.executor.cores 5
yarn.nodemanager.resource.cpu-vcores 30
spark.executor.memory = 104G*(5/30) = 17G
spark.yarn.executor.memoryOverhead = 17G *0.2 = 3481M
那么如果开启动态资源分配的话
spark.shuffle.service.enabled true
spark.dynamicAllocation.enabled true
spark.dynamicAllocation.minExecutors = 6 , 一台机器 yarn.nodemanager.resource.cpu-vcores / spark.executor.cores = 6是合适的
spark.dynamicAllocation.maxExecutors = 600 ,整个集群 100台机器,那么就是 nodemanager * spark.dynamicAllocation.minExecutors = 600
spark.dynamicAllocation.initialExecutors = 6 , 等同于 spark.dynamicAllocation.minExecutors
官方推荐的配置:我当前用的是 1.2.1版本
mapreduce.input.fileinputformat.split.maxsize=750000000
hive.vectorized.execution.enabled=true
hive.merge.sparkfiles=true
hive.auto.convert.join.noconditionaltask.size=894435328
hive.optimize.bucketmapjoin.sortedmerge=false
hive.stats.fetch.column.stats=true
hive.vectorized.execution.reduce.enabled=false
hive.vectorized.groupby.checkinterval=4096
hive.compute.query.using.stats=true
hive.optimize.index.filter=true
hive.exec.reducers.bytes.per.reducer=67108864
hive.smbjoin.cache.rows=10000
hive.exec.orc.default.stripe.size=67108864
spark.kryo.referenceTracking=false
spark.kryo.classesToRegister=org.apache.hadoop.hive.ql.io.HiveKey,org.apache.hadoop.io.BytesWritable,org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch

作者: inter12

在这苦短的人生中,追求点自己的简单快乐

发表评论

电子邮件地址不会被公开。 必填项已用*标注