美文网首页
Spark | 架构

Spark | 架构

作者: icebreakeros | 来源:发表于2019-07-06 14:13 被阅读0次

    架构

    spark生态

    Spark的中间数据放到内存中,对于迭代运算效率更高
    Shark基本上就是在Spark的框架基础上提供和Hive一样的HiveQL命令接口
    Spark Steaming是构建在Spark上处理Stream数据的框架,其基本原理是将Stream数据分成小的时间片断,以类似batch批量处理的方式来处理这小部分数据

    spark生态

    Spark On Mesos模式

    两种调度模式:粗粒度和细粒度

    粗粒度模式(Coarse-grained Mode
    每个应用程序的运行环境由一个Dirver和若干个Executor组成
    每个Executor占用若干资源,内部可运行多个Task
    应用程序运行之前,申请好全部资源,运行结束后,回收这些资源

    细粒度模式(Fine-grained Mode
    思想是按需分配
    启动executor,但每个executor占用资源仅仅是自己运行所需的资源
    mesos会为每个executor动态分配资源
    单个Task运行完之后可以马上释放对应的资源
    每个Task会汇报状态给Mesos slaveMesos Master

    多进程vs多线程

    MapReduce采用了多进程模型,便于细粒度控制每个任务占用的资源,但会消耗较多的启动时间
    Spark同节点上的任务以多线程的方式运行在一个JVM进程中

    多线程好处
    任务启动速度快
    有利于共享内存,非常适合内存密集型任务
    避免了每个任务重复申请资源带来的时间开销

    MapReduce多进程模型

    每个Task运行在一个独立的JVM进程中
    可单独为不同类型的Task设置不同的资源量,目前支持内存和CPU两种资源
    每个Task都要经历“申请资源 > 运行Task > 释放资源”的过程

    MapReduce多进程模型

    Spark多线程模型

    每个节点上可以运行一个或多个Executor服务
    每个Executor配有一定数量的slot
    每个Executor单独运行在一个JVM进程中,每个Task则是运行在Executor中的一个线程
    同一个Executor内部的Task可共享内存

    Spark多线程模型

    相关文章

      网友评论

          本文标题:Spark | 架构

          本文链接:https://www.haomeiwen.com/subject/fddphctx.html