Jbd8:总结

教程地址

https://github.com/datawhalechina/juicy-bigdata/

1. 框架综述

一般来说,大数据框架在总体上分为存储引擎和计算分析引擎

存储引擎通常用来存储海量数据,而分析引擎通常用来分析海量数据

在这里插入图片描述

2. 大数据分析引擎的发展简史

在这里插入图片描述

值得说明的是,该时间标注的是技术出现的时间。在生产环境中,这些技术得到大量运用的时间要比出现时间晚5-10年左右。

2.1 萌芽阶段(2003-2008)

主要产生了“三驾马车”:

  • MapReduce:

    开源分布式并行计算框架

  • BigTable:

    大型的分布式数据库

  • GFS:

    Google的分布式文件系统

主要意义如下:

  1. MapReduce:

    主要解决可扩展性和容错性问题

    使得我们可以通过使用简单的API,专注于大数据处理

    其缺点是抽象层次太低,不便于工作流的编写

  2. FlumeJava:

    主要解决MapReduce抽象层次太低的问题

    解决单个MapReduce无法满足复杂业务场景的问题

    专注自动优化编写的逻辑管道

2.2 快速发展阶段(2009-2014)

  1. Spark

    1.主要改进是:

     内存计算,提高了速度;
    
     引入RDD概念,数据可重放,实现一致性;
    
     RDD的抽象概念,使数据流的处理很方便,代码编写简单。
    
    1. 缺点是:

      Spark Streaming的实时计算,是伪实时、mini-batch的

      不能真正覆盖实时应用的场景。

  2. Storm

    1. 主要优点是:

      event级别实时计算

      毫秒级低延迟

      能满足实时需求

    2. 缺点是:

      较低的一致性保;

      无状态;

      不支持SQL。

关于Storm,比较有趣的是,因为Storm的无状态和较低的一致性保证,Storm的作者提出了Lambda架构(即离线计算+实时计算的架构)。而这个思想,在实时计算和离线计算间,也为后面”流批一体“的出现,埋下了种子。

2.3 成熟阶段(2015-至今)

  1. DataFlow

    DataFlow抽象出一个具有足够普遍性和灵活性的模型,通过执行引擎的选择

    转换为延迟程度和处理成本之间的选择

    这也为流批一体的实现提供了理论基础

    论文翻译

  2. Flink

    Flink不同于Spark的批处理(batch processing)

    它主要用于数据的流处理(streaming processing),将输入看做一条stream

    将函数应用到stream上,再进行输出

    Flink的底层是流式处理,其上层也是基于流式处理构建的batch

    通过记录流式处理的start point,以及维护运行过程中的state实现一个窗口的batch处理

2.4 大数据分析引擎发展方向

  1. 改进编程模型

    用更简单的API,写出更复杂的业务处理逻辑;

  2. 提高处理效率

    效率必然是不可缺少的

  3. 扩大解决的问题领域

    一个处理引擎,能够处理更多的业务场景

    意味着更少的维护成本、更少的集群投入、更简单的架构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值