spark运行模式得示例分析

小编给大家分享一下spark运行模式得示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Local模式

运行Spark最简单的方法是通过Local模式(即伪分布式模式)。

    运行命令为:./bin/run-example org.apache.spark.examples.SparkPi local

基于standalone的Spark架构与作业执行流程

Standalone模式下,集群启动时包括Master与Worker,其中Master负责接收客户端提交的作业,管理Worker。提供了Web展示集群与作业信息。

提交作业有两种方式,分别是Driver(作业的master,负责作业的解析、生成stage并调度task到,包含DAGScheduler)运行在Worker上,Driver运行在客户端。接下来分别介绍两种方式的作业运行原理。

Driver运行在Worker上

    通过org.apache.spark.deploy.Client类执行作业,作业运行命令如下:

        ./bin/spark-class org.apache.spark.deploy.Client launch spark://host:port file:///jar_url org.apache.spark.examples.SparkPi spark://host:port

    作业执行流如图1所示。

spark运行模式得示例分析

                                                       图1

作业执行流程描述:

  1. 客户端提交作业给Master

  2. Master让一个Worker启动Driver,即SchedulerBackend。Worker创建一个DriverRunner线程,DriverRunner启动SchedulerBackend进程。

  3. 另外Master还会让其余Worker启动Exeuctor,即ExecutorBackend。Worker创建一个ExecutorRunner线程,ExecutorRunner会启动ExecutorBackend进程。

  4. ExecutorBackend启动后会向Driver的SchedulerBackend注册。SchedulerBackend进程中包含DAGScheduler,它会根据用户程序,生成执行计划,并调度执行。对于每个stage的task,都会被存放到TaskScheduler中,ExecutorBackend向SchedulerBackend汇报的时候把TaskScheduler中的task调度到ExecutorBackend执行。

  5. 所有stage都完成后作业结束。

Driver运行在客户端

    直接执行Spark作业,作业运行命令如下(示例):

        ./bin/run-example org.apache.spark.examples.SparkPi spark://host:port

    作业执行流如图2所示。

spark运行模式得示例分析

                                                        图2

作业执行流程描述:

  1. 客户端启动后直接运行用户程序,启动Driver相关的工作:DAGScheduler和BlockManagerMaster等。

  2. 客户端的Driver向Master注册。

  3. Master还会让Worker启动Exeuctor。Worker创建一个ExecutorRunner线程,ExecutorRunner会启动ExecutorBackend进程。

  4. ExecutorBackend启动后会向Driver的SchedulerBackend注册。Driver的DAGScheduler解析作业并生成相应的Stage,每个Stage包含的Task通过TaskScheduler分配给Executor执行。

  5. 所有stage都完成后作业结束。

基于Yarn的Spark架构与作业执行流程

spark运行模式得示例分析

这里Spark AppMaster相当于Standalone模式下的SchedulerBackend,Executor相当于standalone的ExecutorBackend,spark AppMaster中包括DAGScheduler和YarnClusterScheduler。

以上是“spark运行模式得示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/230370.html

(0)
上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐

发表回复

登录后才能评论