配置客户端参数
目的
使用Spark时,可以在客户端上设置一些参数,这些参数会影响Spark作业的执行效率和资源使用情况。
方法
客户端参数名称、推荐值以及修改原因请参见表1。
|
参数名 |
推荐值 |
修改原因 |
|---|---|---|
|
spark.shuffle.compress |
True |
通过对Shuffle数据进行压缩,从而降低网络传输开销,提高任务执行效率。 |
|
spark.rdd.compress |
True |
减小RDD过程中Cache数据的尺寸。压缩Cache数据,减少内存占用,从而提升数据缓存效率。 |
|
spark.io.compression.codec |
snappy |
RDD、Shuffle输出等内部数据的编码解码器,snappy在速度上较快且内存/CPU占用小,从而降低资源消耗。 |
|
spark.shuffle.spill.compress |
True |
中间结果在spill到本地硬盘时都会进行压缩,节省耗时。压缩写入磁盘的数据,加快磁盘IO速度,从而减少硬盘空间占用。 |
|
spark.locality.wait |
10s |
设置本地化等待时间,使Spark优先将任务分配到数据所在的节点,从而减少跨节点网络传输。 |
- 方法一:客户端的参数配置主要在spark-defaults.conf中,具体的路径为“$SPARK_HOME/conf/spark-defaults.conf”。该文件为Spark提供配置值,在运行Spark作业时会自动使用这些值。

- 打开文件。
vi $SPARK_HOME/conf/spark-defaults.conf
- 按“i”进入编辑模式,修改对应参数的配置值。
# 开启Shuffle过程中的数据压缩 spark.shuffle.compress true # 开启RDD持久化到磁盘时的数据压缩 spark.rdd.compress true # 设置IO压缩编解码器为snappy spark.io.compression.codec snappy # 开启Shuffle溢出(Spill)到磁盘时的数据压缩 spark.shuffle.spill.compress true # 设置任务调度等待数据本地性的超时时间为10秒 spark.locality.wait 10s
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开文件。
- 方法二:通过终端命令行使用spark-submit进行设置。设置命令如下:
spark-submit \ --conf "spark.shuffle.compress=true" \ --conf "spark.rdd.compress=true" \ --conf "spark.io.compression.codec=snappy" \ --conf "spark.shuffle.spill.compress=true" \ --conf "spark.locality.wait=10s" \ your_application.py
父主题: Spark调优