zoukankan      html  css  js  c++  java
  • spark基本概念与运行架构

    Apache Spark是一个分布式计算框架,旨在简化运行于计算机集群上的并行程序的编写。

    RDD:弹性分布式数据集(Resilient Distributed Dataset)是分布式内存的一个抽象概念,提供了一个高度受限的共享内存模型。一个RDD包含多个分区(Partition)。

    DAG:有向无环图(Directed Acyclic Graph)反应RDD之间的依赖关系。

    Executor:运行在工作节点(WorkNode)的一个进程,负责运行Task。

    Application:用户编写的Spark程序。

    Task:运行在Executor上的工作单元。

    Job:一个Job包含多个RDD及作用于相应RDD上的各种操作。

    Stage:是Job的基本调度单位,一个Job会分为多组Task,每组Task被称为Stage,或者也被称为TaskSet,代表了一组由关联的、相互之间没有shuffle依赖关系的任务组成的任务集。

    与MapReduce相比的优势:

    • 利用多线程来执行具体的任务,减少任务的启动开销
    • Executor中有一个BlockManager存储模块,会将内存和磁盘共同作为存储设备,减少IO开销

    1.  为应用构建起基本的运行环境,即由Driver创建一个SparkContext进行资源的申请、任务的分配和监控。
    2. 资源管理器为Executor分配资源,并Executor启动进程。
    3. SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler解析成Stage,然后把一个个TaskSet提交给底层调度器TaskScheduler处理;Executor向SparkContext申请Task,TaskScheduler将Task发放给Executor运行并提供应用程序代码。
    4. Task在Executor上运行把执行结果反馈给TaskSchedulor,然后反馈给DAGScheduler,运行完毕后写入数据并释放所有资源。

    Spark运行架构特点

    1. 每个Application都有自己专属的Executor进程,并且该进程在Application运行期间一直驻留。Executor进程以多线程的方式运行Task。
    2. Spark运行过程与资源管理器无关,只要能够获取Executor进程并保存通信即可。
    3. Task采用数据本地性和推测执行等优化机制。


    (厦门大学大数据公开课笔记)

  • 相关阅读:
    Tomcat临时目录及java.io.tmpdir对应的目录
    第一篇随笔
    面试
    近期小结-082714
    从头开始构建web前端应用——字符炸弹小游戏(一)
    web版ppt制作插件impress.js源码注释翻译
    .net web service Application_BeginRequest,记录请求数据
    微信APP支付,阿里云服务器,统一下单请求超时
    android仿ios圆弧边框背景
    google map 地址编码及反向地址编码
  • 原文地址:https://www.cnblogs.com/macyzhang/p/10054517.html
Copyright © 2011-2022 走看看