yield

Spark集群工作原理

2018-02-26 15:31  helloworld小渣渣  阅读(524)  评论(0编辑  收藏  举报

Spark

  集群工作原理

    4台机器,1-Spark集群的客户端Driver 2-Master(master节点执行命令的话,久而久之会对磁盘性能产生影响,单独抽出集群客户端节点执行命令是为了让磁盘io的交互不要走master节点) 3-Worker1 4-Worker2

    1.在Spark集群客户端提交一个spark命令后,会启动一个Driver进程,在Driver进程内会创建DAGScheduler、TaskScheduler对象。

    2.Driver进程会把执行application所需要的jar上传到Spark集群的FTP服务器(暂时不理解FTP服务器在哪个节点)

    3.Driver会向Master节点申请资源,Master会找到资源充足的Worker节点,并且在Worker节点上启动Executor进程。(Executor进程是一个JVM进程,在这个进程中有一个Threadpool,在线程池中可以执行task(Thread) )

    4.Worker节点中的Executer进程启动完毕后会反向注册给Driver,此时Driver进程内的TaskScheduler对象就管理着一批Executor列表

    5.Driver内的DAGScheduler遇到action类算子后,就会根据RDD的宽窄依赖切割job,划分stage,将stage中所有的task封装成taskSet发送给TaskScheduler。拥有了Executor的TaskScheduler会遍历这个TaskSet中所有的task,分发到Worker节点内的Executor执行。(task如果执行失败,TaskScheduler会重试3次。如果还是失败,会通知DAGScheduler。DAGScheduler会继续重试4次让TaskScheduler分发这个任务。)

    6.Executor执行的时候,如果有需要依赖的jar包,就去集群的FTP服务上下载。

 

 

分类:

技术点:

相关文章:

  • 2021-06-30
  • 2021-07-28
  • 2021-11-19
  • 2021-06-13
  • 2021-11-21
  • 2021-11-17
  • 2021-09-21
  • 2021-06-13
猜你喜欢
  • 2022-01-31
  • 2021-11-28
  • 2021-12-18
  • 2022-12-23
  • 2021-12-29
  • 2021-05-01
  • 2022-12-23
相关资源
相似解决方案