Spark的核心
Spark的运行框架:
-SparkContext驱动程序
-ClusterManager集群资源管理器
-Executor任务执行进程
Spark Context 是驱动程序,它是spark的根本。SparkContext提交作业,并请求分配资源,Cluster Manager(集群资源管理器)会根据当前集群的使用情况,根据先进先出的原则分配给worker,先分配的应用程序会分配到尽可能多的资源,后分配的应用程序只能在剩余资源中筛选,如果没有合适的只能等待其他应用程序释放资源。ClusterManager默认情况下会分配尽可能多的workers,有利于充分利用集群资源,适合内存比较多的场景。
等clustor manager分配给workers executor后,SparkContext和executor建立起通讯,向executor分配任务,并且监督执行进程,executor会根据调度策略分配任务并返回给SparkContext。
由此一来,一个铁三角关系就形成了。
类似于一个组织的资源调配者,监管者和执行者的关系。监管者向资源调配者报告情况请求资源,资源调配者根据排队情况,先排队的监管者获得多一点的工人,先到先得,在每一个工人旗下创建执行任务进程,由监管者给工人分发具体任务,工人需要向监管者汇报任务的完成情况。