17,关于spark的一些参数优化

Executor执行能力

spark.executor.memory=4g
用于缓存数据、代码执行的堆内存以及JVM运行时需要的内存。

spark.executor.cores=2
单个executor上可以同时运行的task数,该参数决定了一个executor上可以并行执行几个task。

Driver执行能力

spark.driver.memory=4g
driver端的内存和driver缓存,以及返回的数据的大小有关系。
spark.driver.cores=2

读取能力

读取文件的切分规则:
spark.default.parallelism=1

spark.sql.files.maxPartitionBytes=3200000;

spark.sql.files.openCostInBytes=4194304;

spark.hadoop.mapreduce.input.fileinputformat.split.maxsize=67108864;

spark.hadoop.mapreduce.input.fileinputformat.split.minsize.per.node=67108864;

spark.hadoop.mapreduce.input.fileinputformat.split.minsize.per.rack=67108864;
具体使用请参考我之前的博客。

spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version=2
spark.hadoop.mapreduce.input.fileinputformat.list-status.num-threads=50
spark.hadoopRDD.ignoreEmptySplits=true

矢量化reader

spark.sql.orc.enableVectorizedReader=true
spark.sql.orc.impl=native
spark.sql.hive.convertMetastoreOrc=true
spark.sql.hive.convertMetastoreParquet=true

shuffle能力

spark.sql.adaptive.enabled =true
spark.sql.adaptive.shuffle.targetPostShuffleInputSize=67108864
spark.sql.shuffle.partitions=1000;

join

spark.sql.autoBroadcastJoinThreshold = 100000000;
hint

自适应执行

需要配置extend shuffle service
spark.sql.adaptive.enabled=true
spark.dynamicAllocation.enabled=true

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark SQLSpark中的一个模块,用于处理结构化数据,通过执行SQL查询从而实现数据处理和分析任务。在使用Spark SQL时,可以通过调整核心参数优化性能。 1. spark.sql.shuffle.partitions:这个参数指定了进行shuffle操作时的分区数。合理地设置这个参数可以提高整体性能。一般来说,当数据量较小时,设置为几倍于CPU核心数的值,当数据量较大时,可以根据具体情况进行调优。 2. spark.sql.autoBroadcastJoinThreshold:这个参数指定了进行Broadcast Join的阈值。Broadcast Join是指将小表广播到所有的Executor上,与大表进行Join操作,从而减少Shuffle的数据量。合理设置这个参数可以提高Join操作的性能。一般来说,当小表的大小小于等于10MB时,可以将这个参数设置为合适的值。 3. spark.sql.broadcastTimeout:这个参数指定了广播变量的超时时间。当Broadcast Join的阈值设置为正常值时,如果广播变量在超时时间内没有广播到Executor上,那么就会将Broadcast Join更改为Shuffle Join。根据网络情况和数据量大小合理设置这个参数可以提高性能。 除了上述参数,还可以通过设置一些其他的Spark SQL核心参数优化性能,例如: - spark.sql.shuffle.compress:设置是否压缩shuffle的数据,默认为true,可以节省网络传输的数据量。 - spark.sql.inMemoryColumnarStorage.batchSize:设置内存列式存储的批处理大小,默认为10000,适当调整可以提高性能。 - spark.sql.adaptive.enabled:启用自适应执行优化,默认为false,可以根据实际情况开启。 综上所述,通过调整Spark SQL的核心参数可以提高性能,但是需要根据具体情况进行调优,找到最合适的参数值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值