当前位置:   article > 正文

sparkJob任务提交参数配置_spark任务的jobs的数量是什么参数决定的

spark任务的jobs的数量是什么参数决定的

1.介绍

Spark中,提交一个任务的时候,我们可以使用一些参数来配置任务的执行环境,如任务名、资源管理器、并行度等。这些参数可以通过配置文件、命令行或代码中进行配置。本文将介绍如何在Spark中使用代码进行任务参数的设置。

2.SparkContext

Spark中,SparkContextSpark的入口点,它负责连接Spark集群并创建RDD。我们可以通过SparkConf对象来配置SparkContext对象的参数。

3.SparkConf

SparkConfSpark中用于配置SparkApplication的配置文件,它包含了一系列的Key-Value对用于配置任务的参数。

4.SparkSession

SparkSession是在Spark 2及以上版本中引入的,它是Spark SQLMLlibGraphX的入口点。它可以使用SparkConf的配置来创建。

5.Job参数配置

在创建SparkContextSparkSession对象之前,我们可以通过SparkConf来设置一系列的参数以配置任务的执行环境。

5.1 设置任务名
我们可以通过setAppName()方法来设置任务的名称。

val conf = new SparkConf().setAppName("MySparkJob")

5.2 设置任务执行模式
我们可以通过setMaster()方法来设置任务的执行模式,如本地模式、单节点集群模式或分布式集群模式。

val conf = new SparkConf().setMaster("local[*]")

5.3 设置资源管理器
我们可以通过setExecutorEnv()方法来设置资源管理器,如设置使用YARNMesos

val conf = new SparkConf()

  .set("spark.executorEnv.HADOOP_HDFS_HOME", "/path/to/hadoop")

5.4 设置日志级别
我们可以通过setLogLevel()方法来设置日志级别,如设置为INFOWARNERROR

val conf = new SparkConf().setLogLevel("INFO")

5.5 设置并行度
我们可以通过set("spark.default.parallelism", value)方法来设置并行度,这个值决定了数据的分片数。

val conf = new SparkConf().set("spark.default.parallelism", "4")

5.6 设置内存分配
我们可以通过set("spark.executor.memory", value)方法来设置每个Executor的内存分配。

val conf = new SparkConf().set("spark.executor.memory", "2g")

5.7 设置序列化方式
我们可以通过set("spark.serializer", value)方法来设置任务的序列化方式。

val conf = new SparkConf().set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")

5.8 设置任务依赖
我们可以通过addJar()方法来添加任务所依赖的jar包。

val conf = new SparkConf().addJar("/path/to/myjar.jar")

5.9 设置任务超时
我们可以通过set("spark.network.timeout", value)方法来设置任务的超时时间。

val conf = new SparkConf().set("spark.network.timeout", "600")

5.10 设置其他参数
还有一系列其他的参数可以用于配置任务,如spark.eventLog.enabledspark.executor.instances等。

6.完整代码注释案例

import org.apache.spark.{SparkConf, SparkContext}

object MySparkJob {

  def main(args: Array[String]): Unit = {

    // 创建SparkConf对象

    val conf = new SparkConf()

      .setAppName("MySparkJob")

      .setMaster("local[*]")

      .setExecutorEnv("HADOOP_HDFS_HOME", "/path/to/hadoop")

      .setLogLevel("INFO")

      .set("spark.default.parallelism", "4")

      .set("spark.executor.memory", "2g")

      .set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")

      .addJar("/path/to/myjar.jar")

      .set("spark.network.timeout", "600")

      .set("spark.eventLog.enabled", "true")

      .set("spark.executor.instances", "4")

   

    // 创建SparkContext对象

    val sc = new SparkContext(conf)

   

    // TODO: 完成你的Spark任务

   

    // 关闭SparkContext

    sc.stop()

  }

}

代码说明:

  • 首先创建一个SparkConf对象,并使用各种方法设置参数。
  • 然后使用SparkConf对象创建一个SparkContext对象。
  • 最后在SparkContext对象中编写自己的Spark任务代码。
  • 执行完任务后,通过调用sc.stop()方法来关闭SparkContext对象。

参数介绍:

  • setAppName()方法用于设置任务的名称。
  • setMaster()方法用于设置任务的执行模式。
  • setExecutorEnv()方法用于设置资源管理器。
  • setLogLevel()方法用于设置日志级别。
  • set("spark.default.parallelism", value)方法用于设置并行度。
  • set("spark.executor.memory", value)方法用于设置每个Executor的内存分配。
  • set("spark.serializer", value)方法用于设置任务的序列化方式。
  • addJar()方法用于添加任务所依赖的jar包。
  • set("spark.network.timeout", value)方法用于设置任务的超时时间。
  • set("spark.eventLog.enabled", value)方法用于启用事件日志。
  • set("spark.executor.instances", value)方法用于设置Executor的数量。

总结

通过SparkConf我们可以在代码中设置一系列的参数来配置任务的执行环境,包括任务名、执行模式、资源管理器、日志级别、并行度、内存分配、序列化方式等。

代码中的案例展示了如何使用SparkConf来设置参数,并创建SparkContext对象来执行任务。代码中还示范了一些常用的参数设置,你可以根据自己的需求进行调整和扩展。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/853200?site
推荐阅读
相关标签
  

闽ICP备14008679号