运行 一个在整个集群中使用 spark-submit 的 Spark 作业

Running a Spark job with spark-submit across the whole cluster

我最近在 Amazon EMR 上设置了一个 Spark 集群,其中有 1 个主节点和 2 个从节点。

我可以 运行 pyspark,并使用 spark-submit 提交作业。

但是,当我创建独立作业时,例如 job.py,我创建了一个 SparkContext,如下所示:

sc=SparkContext("local", "App Name")

这似乎不对,但我不确定该放什么。

当我提交作业时,我确定它没有使用整个集群。

如果我想 运行 对我的整个集群进行作业,比如每个从属 4 个进程,我必须做什么

a.) 作为参数传递给 spark-submit

b.) 在脚本本身中作为参数传递给 SparkContext()

您可以使用

创建 spark 上下文
conf = SparkConf().setAppName(appName)
sc = SparkContext(conf=conf)

并且您必须使用以下命令将程序提交到 spark-submit spark standalone cluster

./bin/spark-submit --master spark://<sparkMasterIP>:7077 code.py

对于 Mesos 集群

./bin/spark-submit --master mesos://207.184.161.138:7077 code.py

对于 YARN 集群

./bin/spark-submit --master yarn --deploy-mode cluster code.py

对于 YARN master,将从 HADOOP_CONF_DIR 读取配置。