部分spark参数解析

配置 说明
spark.sql.parquet.adaptiveFileSplit true 不知道
spark.sql.adaptive.hashJoin.enabled true 标准的shuffle join 自动转成hashjoin比如broadcast join 或者mapjoin
spark.executor.cores 3 每个executor分配多少个cpu
spark.datasource.splits.max 忘了 不知道
spark.dynamicAllocation.maxExecutors 5000 这事涉及到spark的动态资源分配
Dynamic Resource Allocation
这就是分配的做大executor数
spark.dynamicAllocation.minExecutors 3 同上, 最小executor数
spark.executor.memory 4096 每个executor 分配的内存, executor内存管理
spark.executor.memoryOverhead 3072 堆外内存, spark on yarn内存分配
问题,推外内存干嘛用,以及几个内存配置如何相互影响
spark.memory.fraction 0.7 spark.memory.fraction 代表整体JVM堆内存中M的百分比(默认0.6)。剩余的空间(40%)是为用户数据结构、Spark内部metadata预留的,并在稀疏使用和异常大记录的情况下避免OOM错误。Spark调优(数据序列化和内存调优)
spark.script.transformation.exit.timeout -1 看着像是写脚本退出超时的时间
spark.shuffle.accurateBlockRecordThreshold 500000 不知道
spark.shuffle.accurateBlockThreshold 4000000 以字节为单位的阈值,高于该阈值可准确记录HighlyCompressedMapStatus中随机块的大小。这有助于通过避免在获取shuffle块时低估shuffle块大小来防止OOMspark-参数配置总结
spark.sql.adaptive.maxNumPostShufflePartitions 1000 executor自适应,上限不超过1000
spark.sql.adaptive.shuffle.targetPostShuffleInputSize 52428800 如果两个reducer数据量之和小于这个数,合并reducer
spark.sql.adaptive.shuffle.targetPostShuffleRowCount 5000000 类似上面,行数限制
spark.sql.adaptive.skewedJoin.enabled true 数据倾斜
spark.sql.adaptive.skewedPartitionFactor 3 倾斜因子,如果一个Partition的大小大于spark.sql.adaptive.skewedPartitionSizeThreshold的同时大于各Partition大小中位数与该因子的乘积,或者行数大于spark.sql.adaptive.skewedPartitionRowspark.sql.adaptive.skewedPartitionRowCountThreshold的同时大于各Partition行数中位数与该因子的乘积,则它会被视倾斜的Partition,Spark Adaptive Execution优化
spark.sql.adaptive.skewedPartitionMaxSplits 6 控制处理一个倾斜Partition的Task个数上限
spark.sql.adaptive.skewedPartitionRowCountThreshold 5000000;
spark.sql.adaptive.skewedPartitionSizeThreshold 52428800;
spark.sql.adaptiveHashJoinThreshold 52428800 某个表小于这个值启动hashjoin
spark.sql.files.maxPartitionBytes 268435456 读取文件时打包到单个分区的最大字节数。
spark.sql.inferAndPushdownPredicate.enabled true 谓词下推,就是外部的where放到子查询里面做Hive中的Predicate Pushdown Rules

你可能感兴趣的:(部分spark参数解析)