Spark提交方式
Standalone client测试环境:
Hadoop
./spark-submit
--master spark://node1:7077
--class 类路径
../执行文件的路劲
执行任务数
master节点: | 掌握worker节点的资源信息 |
worker节点: |
|
Driver(sparksubmit)客户端: | 客户端,向master申请application资源。启动executor(执行者)进程,并发送task任务到worker 节点,回收结果。 |
同时启动任务,会造成流量的网卡激增。
使用测试环境
Running applications
可以看到运行的任务,日记,结果
Shell提交任务,看到运行的任务提交,操作日志,结果
看不到driver,客户端充当了driver
集群提交:cluster
./spark-submit
--master spark://node1:7077
--deploy-mode client
--class 类路径
../执行文件的路劲
执行任务数
Master | 随机选一台机器,启动driver。 返回一批符合的资源需求的worker节点 |
Worker(driver) | 向masters申请application资源。启动executor执行task任务。 |
客户端 | 向master,申请启动driver。 |
- 客户端向master申请启动driver
- master随机选择worker的一台机器启动driver.
- Worker节点向woker申请application资源
- Master返回给worker节点,一批符合资源
- Worker上的driver发送任务,并且启动exexutor执行task任务。
- 回收结果。
适用于正式环境,不会造成网卡流量激增。
Running applications:
Running drivers:
Shell提交任务,看不到运行的任务提交,操作日志,结果
区别:客户端提交和集权提交的区别: 1.客户端向master申请启动driver
2.master随机选择一台机器启动driver.
Yarn提交方式
启动的资源zookeeper,hadoop
客户端提交:
./spark-submit
--master yarn
--class 类路劲
../文件路径
任务数
客户端(driver) | 启动driver,向RM申请启动Application。向executor,发送任务,会收结果 |
ResourceManager | 随机选一台机器启动ApplicationMaster。RM向AM返回资源的NM节点。 |
NodeManager | 向RM申请application资源。AM启动executor, |
|
|
使用测试环境,
Shell执行,可以看到执行任务,结果
步骤:
- 启动服务器上的driver,向RM提交发送application
- RM随机在集群上启动一台NM(AM)
- NM(AM启动后),向RM申请包含NM节点资源的container,
- RM返回NM资源信息
- NM(AM(Driver))启动executor,
- Excecutor启动以后,会反向注册给Driver,driver发送任务task给execuotr,执行情况和返回结果给driver。
集群提交:
./spark-submit
--master yarn
--deploy-mode cluster
--class 类路径
../文件路径
执行任务数
客户端 | 申请启动driver()。 |
RM | 随机选NM上的一台机器启动driver。返回NM包含container资源的节点 |
NM(AM,driver) | 向RM申请applicationMaster资源。NM启动executor,发送任务,回收结果 |
使用于生产环境,在客户端看不到任务的执行情况,不会造成流量激增。
步骤:
- 客户端向RM发送application,请求启动AM
- RM随机启动一个NM结点,启动AM
- NM(AM启动后,(相当于driver端)),向RM请求container包含NM资源的信息,
- RM接到请求,返回一批NM资源
- NM(AM启动executor,executor启动后会反向注册给driver)
- driver发送task任务,到executor执行
Yarn客户端提交和集群提交区别:
- 客户端的Driver在客户端,结果也返回给客户端。