Spark 的配置主要通过修改 Spark 的配置文件来实现,主要的配置文件是 spark-defaults.conf 和 spark-env.sh。这些文件位于 Spark 的 conf 目录中。以下是一些关键的 Spark 配置项和配置文件的介绍:

1. spark-defaults.conf:

这个配置文件包含 Spark 的主要配置项,其中每一行都包含一个配置项。你可以在这里设置 Spark 应用程序的参数,包括资源分配、Executor 内存、日志等。以下是一些常见的配置项:

  •  spark.master:

  指定 Spark 应用程序的运行模式,可以是 "local"(本地模式)、"yarn"(YARN 模式)、"mesos"(Mesos 模式)等。

  •  spark.app.name:

  设置应用程序的名称。

  •  spark.executor.memory:

  指定每个 Executor 的内存大小,例如 "1g" 表示 1 GB。

  •  spark.driver.memory:

  指定 Driver 程序的内存大小。

  •  spark.cores.max:

  设置应用程序可用的最大 CPU 核心数。

  •  spark.executor.instances:

  设置 Executor 的数量。

2. spark-env.sh:

这个脚本文件允许你设置环境变量,影响 Spark 的运行时行为。例如,你可以设置 Java 堆大小、Executor 选项等。以下是一些常见的配置项:

  •  export SPARK_HOME=/path/to/spark:

  指定 Spark 安装目录。

  •  export JAVA_HOME=/path/to/java:

  指定 Java 安装目录。

  •  export SPARK_MASTER_IP=your-master-ip:

  指定 Spark Master 的 IP 地址。

  •  export SPARK_WORKER_CORES=2:

  指定每个 Worker 的 CPU 核心数。

3. 运行时配置:

除了配置文件之外,你还可以在提交 Spark 应用程序时通过命令行参数进行配置。例如:
./spark-submit --class your.package.YourAppClass \
               --master yarn \
               --deploy-mode client \
               --executor-memory 2g \
               your-app.jar

上述命令中,--executor-memory 是一个运行时配置项,用于设置每个 Executor 的内存大小。

4. 在应用程序中编程配置:

在 Spark 应用程序代码中,你还可以通过编程的方式设置一些配置。例如,使用 SparkConf 对象:
val conf = new SparkConf()
  .setAppName("YourSparkApp")
  .setMaster("local[2]")
  .set("spark.executor.memory", "1g")

val sc = new SparkContext(conf)

这种方法允许你在应用程序代码中设置一些特定于应用程序的配置项。

请注意,在设置 Spark 的配置项时,根据具体需求,需要合理调整 Executor 内存、CPU 核心数、Driver 内存等参数,以确保 Spark 应用程序能够以最佳性能运行。


转载请注明出处:http://www.pingtaimeng.com/article/detail/9380/Spark