运行spark——6. spark流程

启动流程:

客户端执行启动命令:start-all.sh

1. 首先启动Master节点(master),找到配置的slaves文件,获得需要启动的slave节点

2. 然后启动Worker节点(slave1,slave2)

3. Master节点要求Worker节点向Master发送注册信息

(为什么要注册:Master需要掌握Worker节点的健康状态)

4. Master收到注册信息后将其保存在内存或磁盘,然后与worker建立心跳。

 

心跳是干啥的:

可以定义心跳时间,比如15秒,每15秒Worker都给Master发送心跳,

告诉Master我还活着,Master有一个timeout方法,如果超过了设定的时间

Worker还没向Master发送心跳,就代表这个Worker节点挂了。

 

 

任务提交流程:

spark-submit:

1. 一个客户端执行命令spark-submit后,此客户端会启动一个Driver进程,

Driver会读取spark-submit的参数,比如yarn模式、需要内存1G、线程1G、cpu核数为2

这就需要向yarn申请相应的资源,Driver进程会生成一个非常重要的对象(SparkContext)

(在哪台机器执行命令的就在哪启动driver,其它机器都叫executor)

2. Driver向Master提交任务,Master收到任务信息后进行任务调度,

寻找比较空闲的worker节点执行任务

3. Worker节点启动executor进程运行任务,进行数据分析计算

运行spark——6. spark流程