MAPREDUCE服务 MRS-快速配置Spark参数:快速配置常用参数

时间:2024-11-06 14:23:19

快速配置常用参数

其他参数在安装集群时已进行了适配,以下参数需要根据使用场景进行调整。以下参数除特别指出外,一般在Spark2x客户端的“spark-defaults.conf”文件中配置。

表1 快速配置常用参数

配置项

说明

默认值

spark.sql.parquet.compression.codec

对于非分区parquet表,设置其存储文件的压缩格式。

在JD BCS erver服务端的“spark-defaults.conf”配置文件中进行设置。

snappy

spark.dynamicAllocation.enabled

是否使用动态资源调度,用于根据规模调整注册于该应用的executor的数量。目前仅在YARN模式下有效。

JDB CS erver默认值为true,client默认值为false。

false

spark.executor.memory

每个Executor进程使用的内存数量,与JVM内存设置字符串的格式相同(例如:512m,2g)。

4G

spark.sql.autoBroadcastJoinThreshold

当进行join操作时,配置广播的最大值。

  • 当SQL语句中涉及的表中相应字段的大小小于该值时,进行广播。
  • 配置为-1时,将不进行广播。

10485760

spark.yarn.queue

JDBCServer服务所在的Yarn队列。

在JDBCServer服务端的“spark-defaults.conf”配置文件中进行设置。

default

spark.driver.memory

大集群下推荐配置32~64g驱动程序进程使用的内存数量,即SparkContext初始化的进程(例如:512m, 2g)。

4G

spark.yarn.security.credentials.hbase.enabled

是否打开获取HBase token的功能。如果需要Spark-on-HBase功能,并且配置了安全集群,参数值设置为“true”。否则设置为“false”。

false

spark.serializer

用于串行化将通过网络发送或需要缓存的对象的类以序列化形式展现。

Java序列化的默认值适用于任何Serializable Java对象,但运行速度相当慢,所以建议使用org.apache.spark.serializer.KryoSerializer并配置Kryo序列化。可以是org.apache.spark.serializer.Serializer的任何子类。

org.apache.spark.serializer.JavaSerializer

spark.executor.cores

每个执行者使用的内核个数。

在独立模式和Mesos粗粒度模式下设置此参数。当有足够多的内核时,允许应用程序在同样的worker上执行多个执行程序;否则,在每个worker上,每个应用程序只能运行一个执行程序。

1

spark.shuffle.service.enabled

NodeManager中一个长期运行的辅助服务,用于提升Shuffle计算性能。

fasle

spark.sql.adaptive.enabled

是否开启自适应执行框架。

false

spark.executor.memoryOverhead

每个执行器要分配的堆内存量(单位为兆字节)。

这是占用虚拟机开销的内存,类似于内部字符串,其他内置开销等等。会随着执行器大小(通常为6-10%)而增长。

1GB

spark.streaming.kafka.direct.lifo

配置是否开启Kafka后进先出功能。

false

support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1930.html