zoukankan      html  css  js  c++  java
  • Spark

    10:Spark

    Spark:基于内存的实时数据分析框架

    Spark的特点:

    Spark和Hadoop的对比:

    Hadoop的缺点:

    1.表达能力有限

    2.磁盘IO开销大

    3.延迟高,任务之间的衔接涉及IO开销

    4.在前一个任务执行完成之前,其他任务无法开始,难以胜任复杂、多阶段的计算任务

    Spark的优点:

    1.编程模型更灵活

    2.提供内存运算,迭代运算效率更高

    3.基于DAG的任务调度执行机制

    (Hadoop的Tez框架也实现了DAG任务调度,但Hadoop本身并没有实现)

    Spark的生态系统:(可以同时支持批处理、交互式查询和流数据处理)

    Spark生态系统组件的应用场景:

    10.3.1基本概念和架构设计

    (注意:多组task不是一个task)

    Spark采用Executor所具有的优点:

    1.利用多线程来执行具体的任务,减少任务的启动开销

    2.Executor中有一个BlockManager存储模块,会将内存和磁盘共同作为存储设备,有效减少IO开销

     Spark中的概念:

    相互关系:

    Spark的运行流程图:

    Spark运行架构的特点:

    10.3.3:Spark中的RDD

    RDD:一种抽象的数据结构。不同的RDD之间的转换操作形成依赖关系,可以实现管道化,避免中间数据存储

    RDD的特点:

    RDD的典型执行过程:

    RDD实现Spark高效计算的原因:

    1.RDD具有高效的容错性

    现有容错机制:数据复制/记录日志

    RDD具有天生的容错性

    2.中间结果持久化到内存,数据在内存中的多个RDD操作之间进行传递避免了不必要的读写磁盘开销

    3.存放的数据可以是JAVA对象,避免了不必要的对象序列化和反序列化

    10.3.5:RDD的依赖关系和运行过程

    依赖关系:宽依赖、窄依赖

    窄依赖:

    宽依赖:

      

    stage的划分:(RDD之间的依赖关系形成一个DAG,由sparkcontext负责生成)

    例子:

    stage包含的类型:shuffleMapStage、ResultStage

     

    Spark的部署:

        

    采用Hadoop+Spark的方式:

    不同的计算框架同意运行在YARN中:

    1.计算资源可以按需伸缩

    2.不用负载应用混搭,集群利用率高

    3.共享底层存储,避免数据跨集群迁移

    Spark RDD的基本操作:

  • 相关阅读:
    xml转义字符在mybatis动态sql中的使用
    jdbc类型与java类型
    aop日志(记录方法调用日志)
    mysql数据库关联查询【lert join】常见使用
    maven项目基本配置
    mapper文件的参数传入与获取
    idea新建项目出现push rejected如何解决
    快速从2个List集合中找出相同/不同元素
    Windows 环境下安装RocketMQ
    RabbitMQ java客户端集成 Spring 开发环境
  • 原文地址:https://www.cnblogs.com/cellphone7/p/10072183.html
Copyright © 2011-2022 走看看