大数据Spark企业级实战版【学习笔记】----Spark速度为何如此快

来源:互联网 发布:java内存泄露场景 编辑:程序博客网 时间:2024/05/19 23:04

1.2 Spark大数据处理框架

       Spark作为一个通用的大数据计算平台,基于"One Stack to rule them all"的理念成功成为了一体化、多元化的大数据处理平台,轻松应对大数据处理中的实时流计算、SQL交互式查询、机器学习和图计算等,如图1-23所示:

      

1.2.1 Spark速度为何如此快

1. 统一的RDD抽象和操作

       Spark速度快的一个核心原因就是统一的RDD抽象,基于该抽象,使得Spark的框架可轻而易举地使用Spark Core中所有的内容,并且各个框架可以在内存中无缝地集成和完成系统任务。基于统一的技术堆栈,Spark目前已经成为大数据通用计算平台。

2. 基于内存的迭代式计算

       Hadoop经典的处理过程,如图1-24所示:

      

       MapReduce在每次执行时都要从磁盘读数据,计算完毕后都要把数据存放在磁盘上,如图1-25所示:

       

而Spark是基于内存的,执行过程如图1-26所示:

      

3. DAG(有向无环图)

       DAG也是Spark速度快的极为重要的原因,图1-27是一张DAG图示例:

       

       基于DAG,Spark具备非常精致的作业调度系统,如图1-28所示:

         

    DAG中的依赖有宽依赖和窄依赖之分,如图1-29所示:

         

       在DAG图中可以根据依赖对pipeline等进行优化操作,如图1-30所示:

       

       基于RDD和DAG,并行计算整个Job,如果1-31所示:

      

4. 出色的容错机制

       Spark快的另一个原因是其容错机制,基于DAG图,lineage是轻量级且高效的。操作之间相互具备lineage的关系,每个操作只关系其父操作,各个分片的数据之间互不影响,出现错误时只要恢复单个Split的特定部分即可,如图1-32所示:

       

阅读全文
0 0
原创粉丝点击