分布式离线计算—Spark—基础介绍

原文作者:饥渴的小苹果

原文地址:【Spark】Spark基础教程

目录

Spark特点

Spark相对于Hadoop的优势

Spark生态系统

Spark基本概念

Spark结构设计

Spark各种概念之间的关系

Executor的优点

Spark运行基本流程

Spark运行架构的特点

Spark的部署模式

Spark三种部署方式

Hadoop和Spark的统一部署


摘要:

Spark是基于内存计算的大数据并行计算框架

Spark使用DAG引擎,支持Scala、java、python等多种编程语言;集成了SQL查询(Spark SQL)、流式计算(Spark Streaming)、机器学习(MLLib)、图算法(GraphX4)等多种组件;

Spark包括Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX4种组件

Spark可以独立部署也可以集成到hadoop中,由于Hadoop MapReduce、HBase、Storm和Spark等,都可以运行在资源管理框架YARN之上是最好的方式


Spark最初由美国加州伯克利大学的AMP实验室于2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。

Spark特点

  • 运行速度快:Spark使用先进的DAG(Directed Acyclic Graph,有向无环图)执行引擎,以支持循环数据流与内存计算,基于内存的执行速度可比Hadoop MapReduce快上百倍,基于磁盘的执行速度也能快十倍;
  • 容易使用:Spark支持使用Scala、Java、Python和R语言进行编程,简洁的API设计有助于用户轻松构建并行程序,并且可以通过Spark Shell进行交互式编程;
  • 通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件,这些组件可以无缝整合在同一个应用中,足以应对复杂的计算;
  • 运行模式多样:Spark可运行于独立的集群模式中,或者运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源

Spark相对于Hadoop的优势

Hadoop虽然已成为大数据技术的事实标准,但其本身还存在诸多缺陷,最主要的缺陷是其MapReduce计算模型延迟过高,无法胜任实时、快速计算的需求,因而只适用于离线批处理的应用场景。回顾Hadoop的工作流程,可以发现Hadoop存在如下一些缺点:

  • 表达能力有限。计算都必须要转化成Map和Reduce两个操作,但这并不适合所有的情况,难以描述复杂的数据处理过程;
  • 磁盘IO开销大。每次执行时都需要从磁盘读取数据,并且在计算完成后需要将中间结果写入到磁盘中,IO开销较大;
  • 延迟高。一次计算可能需要分解成一系列按顺序执行的MapReduce任务,任务之间的衔接由于涉及到IO开销,会产生较高延迟。而且,在前一个任务执行完成之前,其他任务无法开始,难以胜任复杂、多阶段的计算任务。

Spark主要具有如下优点:

  • Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比MapReduce更灵活
  • Spark提供了内存计算,中间结果直接放到内存中,带来了更高的迭代运算效率;Spark最大的特点就是将计算数据、中间结果都存储在内存中,大大减少了IO开销
  • Spark基于DAG的任务调度执行机制,要优于MapReduce的迭代执行机制。
  • Spark提供了多种高层次、简洁的

你可能感兴趣的:(人工智能—大数据)