【问题标题】:SparkSubmit can run locally?SparkSubmit 可以在本地运行吗?
【发布时间】:2021-12-21 00:56:17
【问题描述】:

当我使用以下命令运行以下代码时

spark-submit prepiadstream_sample.py --master local[3] --name prepiadstream_sample --num-executors 5 --executor-memory 5g --driver-memory 5g

我发现代码中打印出的配置返回部署模式作为客户端,虽然我在 Spark 提交中本地运行它,但不应该在命令行中使用配置

spark.master 纱线

spark.submit.deployMode 客户端

import os
from pyspark.sql import SparkSession
from pyspark.streaming import StreamingContext
import time
from pyspark.sql import Row


print("Creating Spark Session")

spark = SparkSession.builder\
    .getOrCreate()

<b> print(spark.sparkContext.getConf()) </b>

【问题讨论】:

  • 您能否附上完整的日志,以便我们帮助您进一步进行?因为在不附加日志的情况下很难使用 cmets 调试 spark 日志。

标签: pyspark spark-submit


【解决方案1】:

问题在于参数的顺序。为了让我的应用程序读取我的参数,我应该在应用程序名称之前传递所有 spark 配置参数,否则应用程序将使用 spark 的 默认配置。命令需要发送如下:

spark-submit  --master local[3] --name applicationstream_sample \
--num-executors 5 --executor-memory 5g \
--driver-memory 5g applicationstream_sample.py

我们可以在Spark Submitting 文档中找到正确编写命令的方法,并注意他们在 commanfd 中设置应用程序名称的位置

【讨论】:

    【解决方案2】:

    通常您在生产模式下使用 spark-submit。提交您的 spark 作业允许设置针对您的环境优化的特定选项。 --deploy-mode 用于指定运行 spark 应用程序驱动程序的位置。如果在客户端模式下,驱动程序在本地运行,即运行 spark 提交的机器。它应该用于调试目的。请注意,执行器在不同的机器上运行。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    • 2021-04-09
    • 2021-11-23
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多