spark运行模式

一、Local模式:在本地部署单个Spark服务

  Local模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测试。

二、Standalone模式Spark自带的任务调度模式国内常用)

 

  Standalone模式是Spark自带的资源调动引擎构建一个由Master + Slave构成的Spark集群,Spark运行在集群中。

 

  这个要和Hadoop中的Standalone区别开来这里的Standalone是指只用Spark来搭建一个集群不需要借助其他的框架是相对于YarnMesos来说的

  Sparkstandalone-client和standalone-cluster两种模式,主要区别在于:Driver程序的运行节点。

  1.客户端模式

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077,hadoop103:7077 \
--executor-memory 2G \
--total-executor-cores 2 \
--deploy-mode client \
./examples/jars/spark-examples_2.11-2.1.1.jar \
10

  --deploy-mode client,表示Driver程序运行在本地客户端

  过程:本地递交任务后,会在本地机器上生成Driver,Driver会像spark集群的master注册,master会根据集群的资源使用情况在相应的机器上生成worker,worker会再把客户端的请求封装成Executor,Executor执行完毕后会向Driver反向注册,将执行结果告知Driver,Driver便可以查看到对应信息。但过多的反向注册,容易导致客户端资源紧张。

  2.集群模式

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077,hadoop103:7077 \
--executor-memory 2G \
--total-executor-cores 2 \
--deploy-mode cluster \
./examples/jars/spark-examples_2.11-2.1.1.jar \
10

  --deploy-mode cluster,表示Driver程序运行在集群

 

   过程:客户端提交请求后,Driver由master根据集群情况选择节点生成,其余过程与client模式相同。该模式优点是分散了Driver,解决了反向注册时,因注册请求过多,造成Driver端资源紧张。

三、YARN模式Spark使用HadoopYARN组件进行资源与任务调度。(国内常用

  本地sparksubmit提交任务后,会在本地Driver初始化sc,并将ExecutorLauncher指令发送给RM,RM会选择一台NM
启动EL(ExecutorLauncher),ExecutorLauncher就是AM(ApplicationMaster),AM会向RM申请资源,资源申请后AM会
启动一个Executor,Executor执行后会把结果返回给Driver。
1.脚本启动执行sparksubmit里面的main方法
2.反射回去client类里面的main方法并执行
3.发送指令给RM
4.RM选择一台NM启动AM
5.AM启动Driver线程执行用户任务
6.Driver向RM申请资源
7.AM封装并发送bin/java CoarseGrainedExecutorBackend指令给集群NM,并启动EB(ExecutorBackend)
8.启动EB,并在EB内部创建Executor对象
9.Executor向Driver反向注册
10.Driver分配任务 
# yarn模式提交命令
spark-submit \
--class com.naxions.spark.WordCount \  # 定义的object类的名称
--master yarn \
wc.jar \  # 开发好的jar包
/input \  # 输入路径
/output  # 输出路径

四、Mesos模式Spark使用Mesos平台进行资源与任务的调度。

   国内一般不用

posted @ 2021-03-17 20:08  酷酷的狐狸  阅读(227)  评论(0编辑  收藏  举报