一、Spark介绍

Spark最初由美国加州伯克利大学(UCBerkeley)的AMP实验室于2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。2013年Spark加入Apache孵化器项目后发展迅猛,如今已成为Apache软件基金会最重要的三大分布式计算系统开源项目之一(Hadoop、Spark、Storm)。
Spark具有如下几个主要特点:

  • ● 运行速度快:使用DAG执行引擎以支持循环数据流与内存计算。
  • ● 容易使用:支持使用Scala、Java、Python和R语言进行编程,可以通过Spark Shell进行交互式编程。
  • ● 通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件。
  • ● 运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源。

    1.1 Spark核心问题

  • 是什么?
    是一个基于内存的分布式批处理引擎
  • 做什么?
    ● 数据处理(Data Processing):可以用来快速处理数据,兼具容错性和可扩展性。
    ● 迭代计算(Iterrative Computation):支持迭代计算,有效应对多步数据处理逻辑。
    ● 数据挖掘(Data Mining):在还海量数据的基础上进程复杂的挖掘分析,可支持各种数据挖掘和机器学习算法。
  • Spark和Hadoop相比优势在哪里?
    ● 性能上提升高于100倍。
    ● Spark的中间数据存放在内存中,对于迭代运算的效率更高,进行批处理时更高效。
    ● 更低的延时。
    ● Spark提供更多的数据操作类型,编程模型比Hadoop更灵活,开发效率更高。
    ● 更高的容错能力(血统机制)。
    Hadoop的不足在于:
    ● 表达能力有限
    ● 磁盘IO开销大
    ● 延迟高
    ○ 任务之间的衔接涉及IO开销
    ○ 在前一个任务执行完成之前,其他任务就无法开始,难以胜任复杂、多阶段的计算任务
    相比Hadoop的MR计算,Spark的优势在于:
    ● Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比Hadoop MapReduce更灵活。
    ● Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算效率更高 Spark基于DAG的任务调度执行机制,要优于Hadoop MapReduce的迭代执行机制。
    image.png

    1.2 Spark生态体系

    Spark的设计遵循“一个软件栈满足不同应用场景”的理念,逐渐形成了一套完整的生态系统。既能够提供内存计算框架,也可以支持SQL即席查询、实时流式计算、机器学习和图计算等。Spark可以部署在资源管理器YARN之上,提供一站式的大数据解决方案。因此,Spark所提供的生态系统足以应对上述三种场景,即同时支持批处理、交互式查询和流数据处理。Spark生态圈以Spark Core为核心,从HDFS、Amazon S3和HBase等持久层读取数据,以MESS、YARN和自身携带的Standalone为资源管理器调度Job完成Spark应用程序的计算。 这些应用程序可以来自于不同的组件,如Spark的批处理、Spark Streaming的实时处理应用、Spark SQL的即席查询、MLlib的机器学习、GraphX的图处理等等。
    图片


没人理的香菜
1 声望0 粉丝