莱莱 发表于 2024-12-23 10:55:53

spark-sql 参数配置与调优

动态分区配置

set hive.exec.dynamic.partition=true; --开启动态分区
set hive.exec.dynamic.partition.mode=nonstrict; --允许全部分区是动态的
set hive.exec.max.dynamic.partitions.pernode=1000; --每个mapper/reducer可以创建的最大动态分区数
–set hive.exec.dynamic.partitions=10000; 这个可不要
设置盘算引擎

set hive.execution.engine=spark;
设置spark提交模式

set spark.master=yarn-cluster;
设置作业名称

set spark.app.name=${name};
开启笛卡尔积

set spark.sql.crossJoin.enabled =true
spark精度丢失,导致列查询为null的解决办法

默认是true
设置成false
set spark.sql.decimalOperations.allowPrecisionLoss = false
开启动态资源分配

set spark.dynamicAllocation.enabled = true //开启动态资源分配
set spark.dynamicAllocation.minExecutors=1 //每个Application最⼩分配的executor数
set spark.dynamicAllocation.maxExecutors =20 //每个Application最⼤并发分配的executor数
配置广播变量

set spark.sql.autoBroadcastJoinThreshold 默认是开启的 1010241024
禁用 设置为-1
设置实验器内存

set spark.executor.memory=8G
设置限制 Spark 驱动程序(driver)在向客户端返回结果时的最大大小

set spark.driver.maxResultSize=2G
设置并行度

spark.default.parallelism对于处理惩罚RDD有效;
spark.sql.shuffle.partitions
该参数用于设置Spark作业总共要用多少个Executor历程来实验

set spark.executor.instances=25;
设置实验器盘算核个数

set spark.executor.cores=4;
设置每个executor的jvm堆外内存

set spark.yarn.executor.memoryOverhead=2048;

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: spark-sql 参数配置与调优