运行 一个在整个集群中使用 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 读取配置。
我最近在 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 读取配置。