摘要:本文主要讲了Spark几种不同的执行模式以及其原理
一、执行模式
提交脚本常见的语法:
./bin/spark-submit \
--class <main-class>
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]
脚本说明:
(1)—-class: 主类,即main函数所有的类
(2)—- master : master的URL,见下面的详细说明。
(3)—-deploy-mode:client和cluster2种模式
(4)—-conf:指定key=value形式的配置
1、local
本地跑程序,一般用来测试。可以指定线程数
# Run application locally on 8 cores
./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[8] \
/path/to/examples.jar \
100
2、Standalone client
该方式应用执行流程:
(1)用户启动客户端,之后客户端运行用户程序,启动Driver进程。在Driver中启动或实例化DAGScheduler等组件。 客户端的Driver向Master注册。
(2)Worker向Master注册,Master命令Worker启动Exeuctor。Worker通过创建ExecutorRunner线程,在ExecutorRunner线程内部启动ExecutorBackend进程。
(3)ExecutorBackend启动后,向客户端Driver进程内的SchedulerBackend注册,这样Driver进程就能找到计算资源。Driver的DAGScheduler解析