SparkSubmit可以在本地运行吗?
SparkSubmit can run locally?
当我 运行 下面的代码使用以下命令时
spark-submit prepiadstream_sample.py --master local[3] --name
prepiadstream_sample --num-executors 5 --executor-memory 5g
--driver-memory 5g
我发现配置在代码中打印出来 return 作为客户端的部署模式,尽管我 运行 它在 Spark 本地提交,不应该;不应该在命令行中使用配置
spark.master yarn
spark.submit.deployMode client
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>
问题是参数的顺序。为了让我的应用程序读取我的参数,我应该在应用程序名称 之前传递所有 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
中设置应用程序名称的位置
通常在生产模式下使用 spark-submit。提交您的 Spark 作业允许设置针对您的环境优化的特定选项。 --deploy-mode 用于指定 运行 spark 应用程序驱动程序的位置。如果在客户端模式下,驱动程序 运行 在本地,即您 运行 提交 spark 的机器。它应该用于调试目的。请注意,执行程序 运行 在不同的机器上。
当我 运行 下面的代码使用以下命令时
spark-submit prepiadstream_sample.py --master local[3] --name prepiadstream_sample --num-executors 5 --executor-memory 5g --driver-memory 5g
我发现配置在代码中打印出来 return 作为客户端的部署模式,尽管我 运行 它在 Spark 本地提交,不应该;不应该在命令行中使用配置
spark.master yarn
spark.submit.deployMode client
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>
问题是参数的顺序。为了让我的应用程序读取我的参数,我应该在应用程序名称 之前传递所有 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
中设置应用程序名称的位置通常在生产模式下使用 spark-submit。提交您的 Spark 作业允许设置针对您的环境优化的特定选项。 --deploy-mode 用于指定 运行 spark 应用程序驱动程序的位置。如果在客户端模式下,驱动程序 运行 在本地,即您 运行 提交 spark 的机器。它应该用于调试目的。请注意,执行程序 运行 在不同的机器上。