运行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进程运行任务,进行数据分析计算