鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

配置客户端参数

目的

使用Spark时,可以在客户端上设置一些参数,这些参数会影响Spark作业的执行效率和资源使用情况。

方法

客户端参数名称、推荐值以及修改原因请参见表1

表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作业时会自动使用这些值。

    1. 打开文件。
      vi $SPARK_HOME/conf/spark-defaults.conf
    2. “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
    3. “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