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

时间:2016-04-01 04:02:20

标签: hadoop apache-spark pyspark emr amazon-emr

我最近在Amazon EMR上设置了一个拥有1个主服务器和2个从服务器的Spark群集。

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

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

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

这似乎不对,但我不知道该放什么。

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

如果我想针对整个群集运行作业,请说每个奴隶有4个进程,我有什么需要

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

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

1 个答案:

答案 0 :(得分:2)

您可以使用

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

并且您必须使用以下命令将程序提交到spark-submit以用于spark独立群集

./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中读取。