火花核心的核心理论

  

1。火花核心的核心功能

  

  (1) SparkContext:

  

   通常而言,DriverApplication的执行与输出都是通过SparkContext完成的,在正式提交应用之前,首先需要初始化SparkContext.SparkContext隐藏了网络通信,分布式部署,消息通信,存储能力,计算能力,缓存,测量系统,文件服务,web服务等内容。应用程序的开发者只需要使用SparkContext提供的API完成功能开发。
    <强>一个应用程序——→一个或者多个工作- - - - -→一个或者多个阶段- - - - -→多个任务
    SparkContext内置的<强> DAGScheduler 强负责去创建工作,将一个应用程序转化成为多个工作。(相应的工作的划分,是看应用程序中,执行了多少个行动算子)
    SparkContext内置的<强> TaskScheduler :负责进行任务的派发,发送到相应的节点,执行任务。

  

 (2)存储体系:

  

   火花<强>优先考虑使用节点的内存作为存储,当内存不足时槽考虑使用磁盘,这极大的减少了磁盘I/O,提升了执行的效率,使得火花适用于实时计算,流式计算等场景。此外,火花还提供了以内存为中心的高容错的分布式文件系统<强>速子强,供用户选择。

  

 (3)计算引擎:

  

盎鸹ê诵牡暮诵睦砺邸?    计算引擎由SparkContext中的DAGScheduler,抽样以及具体节点上的遗嘱执行人负责执行的Map和Reduce任务组成.DAGScheduler和抽样虽然位于SparkContext内部,但是在任务正式提交与执行之前将工作中的抽样组织成有向无环图(简称DAG),并对阶段进行划分决定了任务执行阶段任务的数量,迭代计算,洗牌等过程。

  

 (4)部署模式:

  

   单节点不足以提供足够的存储计算能力,所以作为大数据处理的火花在SparkContext的TaskScheduler组件中提供了,<强>独立部署模式的实现和<强> YANR,便等分布式资源管理系统的支持。除了可用于实际生产环境的独立的、纱、便,kubernetes,云等部署模式外,火花还提供了当地模式和本地集群模式便于开发和调试。
    <强>独立、纱、便,kubernetes,云:用于分布式生产场景。
   强大的<> 强用于本地测试。

  

2。火花集群架构:

  

盎鸹ê诵牡暮诵睦砺邸?    <强>集群管理器:火花集群的管理者,主要负责资源你的分配与管理。集群管理分配的资源属于一级分配,它将各个工人上的内存,CPU、等资源分配给应用程序,但是并不对遗嘱执行人的资源分配。目前:<强>独立的,<强>纱强,便,<强> k8 强,EC2等都可以作为火花的集群管理器。
   <强>主:火花集群的主节点。
   <强>工人:火花集群的工作节点,对火花应用程序来说,由集群管理器分配得到资源的工人主要负责以下工作:创建执行者,将资源和任务进一步分配给遗嘱执行人,同步资源信息给集群管理器。
   <强>执行人:执行计算任务的进程。主要负责执行任务,以及与工人,驱动应用程序的信息同步。(主要是初始化一个线程池,调度其中的线程执行相应的计算任务)
   <强>司机Appication :客户端驱动程序,也可以理解为客户端的应用程序,用于将任务程序转化为抽样和DAG,并与集群管理器进行通信与调度,其中SparkContext这个对象的创建就是在司机Appication中。
    :<强>部署模式部署的模式,在写好的代码,提交到集群中运行时:<强>——指大师定资源的管理器。
其中常见的有<强>纱强,在使用纱的方式进行任务提交的时候,通常必须配置另一个参数:<强>——deploy-mode客户机/集群有客户端和集群两种。
<强>客户强,表示就把司机程序,放在提交的节点。
<强>集群表示把司机程序,放在集群中的任意节点.Driver程序决定了SparkContext对象在哪里创建。

各个角色之间的关系:
        盎鸹ê诵牡暮诵睦砺邸?    火花计算平台有两个重要角色,司机和执行人,不论是独立的模式还是纱模式,都是司机充当应用程序的主角色,负责任务执行计划生成和任务分发及调度;执行人充当工人角色,负责实际执行任务的任务,计算的结果返回司机。

火花核心的核心理论