Spark概述

计算框架,不具备数据存储功能。

特点

1、运行速度快。使用DAG执行引擎以支持循环数据流与内存计算。
2、容易使用。支持Scala,Java,Python,R语言。
3、通用性。提供完整强大的技术栈,包括sql查询,流计算,机器学习,图计算等。
4、运行模式多样。可运行独立集群模式中,也可运行Hadoop中,云环境中,YARN中等等。并可集成HDFS,HBase,Hive等多种数据源。

编程语言

Scala特性:
1、Scala具备强大的并发性,支持函数式编程,更好地支持分布式系统。
2、兼容Java,运行速度快,且能融合到Hadoop生态环境中。
3、语法简洁,提供API。

Spark与Hadoop对比

Hadoop缺点:
1、表达能力有限。MapReduce把编程工作进行抽象,化解成map和reduce两个函数,无论完成任何程序都要写map和reduce函数,大大降低了开发难度,不用了解分布式工作。因此一方面降低了程序开发复杂性,但同时限制了它自身的表达能力,现实业务中有些无法用MapReduce去做。
2、磁盘IO开销大。MapReduce每次写从磁盘读数据,磁盘写完后Map阶段结束后,结果还写在磁盘上,等待reduce拉走,再把结果写入磁盘。
3、延迟高。任务执行分成Map阶段,Reduce阶段。必须等所有Map任务执行完,才执行Reduce任务。之间有互相等待时间。另外Map任务结束后把结果写在磁盘上后,Reduce拉走,之间有写磁盘读磁盘,涉及到IO开销。难以胜任比较复杂的多阶段计算任务,比如不断迭代算法,遗传算法等。

优点

1、Spark计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型。
2、Spark提供内存计算,可将中间结果放到内存中,对于迭代运算效率更高。
3、Spark基于DAG任务调度执行机制,要优于Hadoop MapReduce迭代执行机制。
Spark概述
Spark概述

Spark生态系统

Spark概述

基本概念

Spark概述

Spark运行架构

Spark概述
相对于Hadoop优点:
1、利用多线程来执行具体的任务减少任务启动开销。
2、Excutor中有一个BlockManager存储模块,会将内存和磁盘共同作为存储设备,有效减少IO开销。

Spark运行基本流程

Spark概述
Spark概述
Spark概述
Spark概述