Spark及生态圈概述(Spark基础篇一)

目录

  • Spark介绍
  • Spark生态组件介绍
  • Spark特点
  • Spark适合场景
  • Spark与hadoop

一、Spark介绍


      Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势:

  • Spark提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求
  • 官方资料介绍Spark可以将Hadoop集群中的应用在内存中的运行速度提升100倍,甚至能够将应用在磁盘上的运行速度提升10倍


二、Spark生态组件介绍


参考:https://www.cnblogs.com/broadview/p/6247979.html 

图片描述

  • Spark Core:提供了多种资源调度管理,通过内存计算、有向无环图(DAG)等机制保证分布式计算的快速,并引入了RDD的抽象保证数据的高容错性。尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的
  • Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。引入了新的SchemaRDD,同时内嵌了Catalyst查询优化框架
  • BlinkDB: 是一个用于在海量数据上运行交互式SQL查询的大规模并行查询引擎,用户使用时要在查询精度和查询时间上做权衡;
  • Spark Streaming:通过将流数据离散化处理对数据流进行实时处理和控制。Spark Streaming允许程序能够像普通RDD一样处理实时数据
  • MLBase是Spark生态系统中专注于机器学习的组件,分为4个部署:MLRuntime, MLlib, MLI和ML Optimizer。MLlib:一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。
  • GraphX:控制图、并行图操作和计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作


三、Spark特点


  1. 运行速度快:基于内存计算,引入DAG引擎,同时进行了数据本地性、调度优化和传输优化等原因

  2. 通用性强:批处理、流处理与交互式分析的一体化,适用场景广泛(大数据分析统计,实时数据处理,图计算及机器学习)

  3. 易用性好:编写简单,支持80种以上的高级算子,支持多种语言,数据源丰富,可部署在多种集群中

  4. 容错性高,快速故障恢复机制:Spark引进了弹性分布式数据集RDD (Resilient Distributed Dataset) 的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据“血统”(即充许基于数据衍生过程)对它们进行重建。另外在RDD计算时可以通过CheckPoint来实现容错,而CheckPoint有两种方式:CheckPoint Data,和Logging The Updates,用户可以控制采用哪种方式来实现容错。

  5. 随处运行:运行各种持久层原生数据读写,能以local及多种cluster模式运行


四、Spark适合场景


  1. 复杂的批量处理(Batch Data Processing),偏重点在于处理海量数据的能力,至于处理速度可忍受,通常的时间可能是在数十分钟到数小时;

  2. 基于历史数据的交互式查询(Interactive Query),通常的时间在数十秒到数十分钟之间

  3. 基于实时数据流的数据处理(Streaming Data Processing),通常在数百毫秒到数秒之间


五、Spark与Hadoop



参考:https://www.cnblogs.com/tgzhu/p/5818374.html

猜你喜欢

转载自www.cnblogs.com/zhanghy/p/12165955.html