spark运行机制
2016-04-08 12:56:58 14 举报
Spark是一个基于内存的分布式计算系统,它的核心是弹性分布式数据集(RDD)。RDD是一个容错的、并行的数据结构,可以让用户在大规模数据集上执行各种操作。Spark运行机制包括以下步骤:首先,将数据分成多个分区,每个分区都存储在一个节点上;然后,通过并行化操作来处理这些分区;最后,将结果合并并返回给用户。Spark还提供了丰富的API和编程模型,支持多种编程语言,如Java、Scala和Python。此外,Spark还具有高可靠性和可扩展性,可以轻松地处理PB级别的数据。总之,Spark是一种高效、灵活且易于使用的大数据处理框架。
作者其他创作
大纲/内容
Master接受到注册信息后如何可以运行程序,则会为该程序生产Job ID并通过schedule来分配计算资源,具体计算资源的分配是通过应用程序的运行方式、Memory、cores等配置信息来决定的,最后Master会发送指令给Worker
这个JVM进程启动时候加载的main方法所在的类的名称就是在创建ClientEndpoint时传入的Command来指定具体名称为CoarseGrainedExecutorBackend的类,此时JVM在通过ProcessBuilder启动的时候获得了CoarseGrainedExecutorBackend后加载并调用其中的main方法,在main方法中会实例化CoarseGrainedExecutorBackend本身这个消息循环体,而CoarseGrainedExecutorBackend在实例化的时候会通过回调onStart向DriverEndpoint发送RegisterExecutor来注册当前的CoarseGrainedExecutorBackend
TaskSchedulerImpl
ExecutorCoarseGrainedExecutorBackend收到RegisteredExecutor信息后就创建一个Executor,用于运行具体的Task.
ClientEndpoint在该start方法中会创建AppClient对象并调用AppClient对象的start方法,在该start方法中会创建ClientEndpoint,在创建ClientEndpoint会传入Command来指定具体为当前应用程序启动的Executor进行的入口类的名称为CoarseGrainedExecutorBackend,然后ClientEndpoint启动并通过tryRegisterMaster来注册当前的应用程序到Master中
SparkContext
CoarseGrainedExecutorBackend
DAGScheduler
Master
Worker
SparkDeploySchedulerBackend
SparkContext:在SparkContext实例化的时候调用createTaskScheduler来创建TaskSchedulerImpl和SparkDeploySchedulerBackend,同时在SparkContext实例化的时候会调用TaskSchedulerImpl的start
AppClient
ExecutorRunnerWorker中为当前应用程序分配计算资源时会首先分配ExecutorRunner,ExecutorRunner内部会通过Thread的方式构建ProcessBuilder来启动另外一个JVM进程
DriverEndPoint此时DriverEndpoint收到到该注册信息并保存在了SparkDeploySchedulerBackend实例的内存数据结构中,这样Driver就获得了计算资源!检查注册完成后,DriverEndPoint回复一个RegisteredExecutor给CoarseGrainedExecutorBackend
收藏
收藏
0 条评论
下一页