动态分区配置
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;
版权归原作者 WBerica 所有, 如有侵权,请联系我们删除。