Spark原理框架说明

Spark原理框架说明1)先启动master进程,然后在其他机器启动worker进程,然后worker和master会通过rpc进行通信

2)在window中会写一个程序,然后打包成jar包

3).然后在linux执行 spark-submit --master spark://linux01:7077 --class类名 jar包 这个命令,执行者个命令就找到了集群(standlone模式的spark集群),然后向master进行资源申请

4)master会跟worker通信让worker启动executor(executor就是工作进程)executor中运行着task(工作的实例,封装这计算逻辑),也会在其他的机器上启动executor(启动多少executor,需要提交任务的时候指定需要多少任务资源),executor启动后会向sparkSubmit(driver)进行反向注册,这样executor和sparksubmit建立了联系,然后对rdd进行操作,sparksubmit会对rdd进行转换,然后触发action,生成相应的计算任务,把任务调度到executor中进行执行

Master worker executor sparksubmit都是java进程

Spark中重要角色

l Master :是一个Java进程,接收Worker的注册信息和心跳、移除异常超时的Worker、接收客户端提交的任务、负责资源调度、命令Worker启动Executor。

l Worker :是一个Java进程,负责管理当前节点的资源关联,向Master注册并定期发送心跳,负责启动Executor、并监控Executor的状态。

l SparkSubmit :是一个Java进程,负责向Master提交任务。

l **Driver :**是很多类的统称,可以认为SparkContext就是Driver,client模式Driver运行在SparkSubmit进程中,cluster模式单独运行在一个进程中,负责将用户编写的代码转成Tasks,然后调度到Executor中执行,并监控Task的状态和执行进度。

l Executor :是一个Java进程,负责执行Driver端生成的Task,将Task放入线程中运行。