Spark job运行模式

1.单机模式运行,即local模式

启动spark-shell
local模式运行非常简单,只要运行以下命令即可,假设当前目录是$SPARK_HOME

MASTER=local bin/spark-shell

“MASTER=local”就是表明当前运行在单机模式

2.local cluster方式运行,是一种伪cluster模式

local cluster模式是一种伪cluster模式
在单机环境下模拟standalone的集群,启动顺序分别如下
1.启动master
2.启动worker
3.启动spark-shell

$SPARK_HOME/sbin/start-master.sh

修改配置
1.进入$SPARK_HOME/conf目录
2.将spark-env.sh.template重命名为spark-env.sh
3.修改spark-env.sh,添加如下内容

export SPARK_MASTER_IP=localhost
export SPARK_LOCAL_IP=localhost

运行worker

bin/spark-class org.apache.spark.deploy.worker.Worker spark://localhost:7077 -i 127.0.0.1  -c 1 -m 512M

worker启动完成,连接到master。
打开maser的web ui可以看到连接上来的worker.
Master WEb UI的监听地址是http://localhost:8080

启动spark-shell

MASTER=spark://localhost:7077 bin/spark-shell

如果一切顺利,将看到下面的提示信息。
Created spark context..Spark context available as sc.

可以用浏览器打开localhost:4040来查看如下内容
1.stages
2storage
3.environment
4.executors

wordcount
上述环境准备妥当之后,我们在sparkshell中运行一下最简单的例子,在spark-shell中输入如下代码

scala>sc.textFile("README.md").filter(_.contains("Spark")).count

上述代码统计在README.md中含有Spark的行数有多少

扫描二维码关注公众号,回复: 1461021 查看本文章

3.集群(cluster)方式

Spark集群环境中组件构成如下图所示。

这里写图片描述

1.Driver Program 简要来说在spark-shell中输入的wordcount语句对应于上图的Driver Program.
2.Cluster Manager 就是对应于上面提到的master,主要起到deploy management的作用
3.Worker Node 与Master相比,这是slave node。
上面运行各个executor,executor可以对应于线程。
executor处理两种基本的业务逻辑,
一种就是driver programme,
另一种就是job在提交之后拆分成各个stage,
每个stage可以运行一到多个task.

Notes:
在集群(cluster)方式下, Cluster Manager运行在一个jvm进程之中,而worker运行在另一个jvm进程中。
在local cluster中,这些jvm进程都在同一台机器中,
如果是真正的standalone或Mesos及Yarn集群
worker与master或分布于不同的主机之上。


# 以 Spark Standalone 模式运行 Spark job
#需设置enable_spark_standalone为true
Scala
cd /opt/spark
bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://<主节点IP>:7077 examples/jars/spark-examples_2.11-2.2.0.jar 100


#以 Spark on YARN 模式运行 Spark job
#需设置enable_spark_standalone为false
Scala
cd /opt/spark
bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --num-executors 3 --executor-cores 1 --executor-memory 1g examples/jars/spark-examples_2.11-2.2.0.jar 100

猜你喜欢

转载自blog.csdn.net/huojiao2006/article/details/80335163