Spark调优(一)资源优化篇

本文从搭建Spark集群开始,详细介绍了如何进行资源优化,包括在`spark-env.sh`配置文件中设定`SPARK_WORKER_CORES`和`SPARK_WORKER_MEMORY`,以及使用`spark-submit`命令指定`driver-cores`、`driver-memory`、`executor-cores`、`executor-memory`等参数。此外,还讨论了在代码中和`spark-defaults.xml`配置文件中设置资源参数的可能性和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Spark调优相关事宜,本章先自万物起始之初,集群的资源优化讲起。

  • 搭建集群
    在Spark安装路径下 spark/conf/spark-env.sh配置:
    SPARK_WORKER_CORES=XXX
    SPARK_WORKER_MEMORY=XXX
  • 提交任务
    提交任务命令,最好使用脚本化提交,可以在提交任务时,给当前Spark 应用程序足够的资源,提交命令:
    ./spark-submit –master spark://mynode1:7077 –class …. jar …

可以在—master 之后—class之前指定如下参数

–driver-cores :
指定Driver端使用的core数。
–driver-memory:
指定Driver端使用的内存数,如果Driver端有回收数据广播的时候,可以多申请内存。
–executor-cores
指定Executor端使用的core数,一个core可以某个时刻并行执行1个task,Executor 的core越多代表可以并行执行的task越多。
–executor-memory:
指定Executor端使用的内存,如果shuffle量多、对RDD持久化多、task创建对象多,可以申请多一些内存。
–total-executor-cores
Standalone集群中,指定当前Spark应用程序最多使用多少core。在Standalone集群中默认提交一个Spark应用程序,这个Spark应用程序会使用当前集群所有的资源。
–num-executor
在Yarn集群中默认为一个提交的Spark应用程序启动几个Executor,默认启动2个。
除了以上提交任务时可以指定参数外,也可以在代码中设置(不建议):SparkConf.set(k,v)在代码中这种方式设置。
也可以在Spark提交任务的客户端的spark/conf/spark-defaults.xml(不建议)下配置以下参数:
spark.driver.cores
spark.driver.memory
spark.exeuctor.cores
spark.executor.memory
spark.cores.max

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值