sql常设置的参数

(1)hive-sql

参数设置:

set tez.queue.name=${USER_QUEUE};

set hive.execution.engine=tez;

--要求不检查笛卡尔积

set hive.strict.checks.cartesian.product=false


set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;

set hive.exec.max.dynamic.partitions=100000;
set hive.exec.max.dynamic.partitions.pernode=100000;
set hive.optimize.sort.dynamic.partition=true;

--并行度

set hive.exec.parallel=true

set hive.exec.parallel.thread.number=16

--合并小文件,减少map数

set mapred.max.split.size=100000000;

set mapred.min.split.size.per.node=100000000;

set mapred.min.split.size.per.rack=100000000;

set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

--设置map端输出进行合并,默认为true

set hive.merge.mapfiles = true

--设置reduce端输出进行合并,默认为false

set hive.merge.mapredfiles = true

--设置合并文件的大小

set hive.merge.size.per.task = 256*1000*1000

--当输出文件的平均大小小于该值时,启动一个独立的MapReduce任务进行文件merge。

set hive.merge.smallfiles.avgsize=16000000

--防止数据倾斜,Map 端进行聚合操作

set hive.map.aggr=true;

--有数据倾斜的时候进行负载均衡

set hive.groupby.skewindata=true;

set spark.reducer.maxSizeInFlight=96m;
set mapreduce.reduce.memory.mb=5120;
set mapreduce.reduce.java.opts=-xmx4096m;

(2)spark-sql

查看 spark版本

spark-submit --version

Spark 配置 (apachecn.org)http://spark.apachecn.org/#/docs/20spark-submit 设置参数

spark-shell 设置参数

(1条消息) Spark处理百亿规模数据优化实战_aijiudu的博客-CSDN博客_spark处理大量数据https://blog.csdn.net/aijiudu/article/details/75206590

--设置网络延时时间

set spark.network.timeout=300;

--并行度

set spark.sql.shuffle.partitions=600;

set spark.default.parallelism=600

--动态调整资源

set spark.sql.adaptive.enabled=true;

set spark.sql.adaptive.shuffle.targetPostShuffleInputSize=134217728b;

--动态分区        

set hive.exec.dynamic.partition=true;

set hive.exec.dynamic.partition.mode=nonstrict;

set hive.optimize.sort.dynamic.partition=true;

set mapreduce.job.reduces=16;

--任务内存参数配置

set spark.memory.fraction=0.4

--慢任务推测参数配置:

set spark.speculation=true

set spark.speculation.interval=60s

set spark.speculation.multiplier=1.3

set spark.speculation.quantile=0.99

--产出文件数量进行动态调整,让文件大小尽量在200M~256M左右

set spark.dynamicAllocation.minExecutors=1000set spark.dynamicAllocation.maxExecutors=1600

--Shuffle参数配置

【Spark篇】---Spark中内存管理和Shuffle参数调优 - 云+社区 - 腾讯云 (tencent.com)https://cloud.tencent.com/developer/article/1337636

该参数用于设置shuffle write task的BufferedOutputStream的buffer缓冲大小

set spark.shuffle.file.buffer=128k;

设置shuffle read taskbuffer缓冲大小而这个buffer缓冲决定了每次能够拉取多少数据

set spark.reducer.maxSizeInFlight=96m;

特别耗时的shuffle操作的作业,建议增加重试最大次数(比如60次)

set spark.shuffle.io.maxRetries=60;

每次重试拉取数据的等待间隔,大间隔时长,以增加shuffle操作的稳定性

set spark.shuffle.io.retryWait=60s;

分配给shuffle read task进行聚合操作的内存比例

set spark.shuffle.memoryFraction=0.4;

如果使用HashShuffleManager,该参数有效。如果设置为true,那么就会开启consolidate机制,会大幅度合并shuffle write的输出文件

set spark.shffle.manager=hash;

set spark.shuffle.consolidateFiles=true;

set spark.sql.files.maxPartitionBytes=134217728;

set parquet.block.size=33554432;

-- 需为true,否则hive无法识别spark-sql写的parquet
set spark.sql.parquet.writeLegacyFormat=true;

引入外部文件至hive的lib包:

add file hive的lib包路径/xx.json;

add jar hive的lib包路径/xx.jar;

创建临时函数:

create temporary function 函数名 as ‘jar包的mian方法路径’

create temporary function A as 'com.XX.XX.hive.udf.ClearCsv';

持续更新中。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值