【问题标题】:Purpose of SparkConf and sparkContextSparkConf 和 sparkContext 的目的
【发布时间】:2020-05-02 10:34:26
【问题描述】:

sparkContext 和 sparkConf 的用途是什么?寻找详细的区别。

超过以下定义:

Spark Context 是任何 Spark 应用程序的入口点,用于访问所有 Spark 功能,并且需要具有所有集群配置和参数的 sparkConf 来创建 Spark Context 对象。

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    任何 Spark 驱动程序应用程序的第一步都是创建一个 SparkContext。 SparkContext 允许您的 Spark 驱动程序应用程序通过资源管理器访问集群。资源管理器可以是 YARN,也可以是 Spark 的集群管理器。为了创建 SparkContext,您应该首先创建一个 SparkConf。 SparkConf 存储您的 Spark 驱动程序应用程序将传递给 SparkContext 的配置参数。其中一些参数定义了 Spark 驱动程序应用程序的属性,而另一些则被 Spark 用于在集群上分配资源。例如,在工作节点上运行的执行程序使用的数量、内存大小和内核。 setAppName() 为您的 Spark 驱动程序应用程序命名,以便您可以在 Spark 或 Yarn UI 中识别它。

    SparkConf 被传递到 SparkContext 中,因此我们的驱动程序应用程序知道如何访问集群。

    现在您的 Spark 驱动程序应用程序具有 SparkContext,它知道要使用哪个资源管理器,并可以向它请求集群上的资源。如果您使用 YARN,Hadoop 的资源管理器(headnode)和节点管理器(workernode)将为执行器分配一个容器。如果集群上的资源可用,则执行程序将根据您的配置参数分配内存和内核。如果您使用的是 Sparks 集群管理器,则会使用 SparkMaster(头节点)和 SparkSlave(工作节点)来分配执行器。

    每个 Spark 驱动程序应用程序在集群上都有自己的执行程序,只要 Spark 驱动程序应用程序具有 SparkContext,它们就会保持运行。执行器运行用户代码、运行计算并可以为您的应用程序缓存数据。 SparkContext 将创建一个分为多个阶段的作业。这些阶段被分解为由 SparkContext 在执行程序上调度的任务。

    【讨论】:

    • 火花驱动程序在哪里存在..?它是否在 spark-submit shell 中的某个地方......?或者它在 spark 程序中的 sparkContext 之前被初始化..?
    • spark-shellspark-submit 的推出意味着我们已经创建了一个驱动程序。驱动程序应用程序运行我们代码的 main() 函数,并且 sparkContext 也将自己附加到 spark 驱动程序应用程序。
    • 请查看问题的答案,如果它解决了您的问题,请标记为答案。 What should I do when someone answers my question?
    猜你喜欢
    • 2017-06-25
    • 2015-09-04
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多