1.Spark介绍

1.什么是Spark

网址:https://spark.apache.org/
1.Spark介绍_第1张图片
Unified engine for large-scale data analytics 用于大规模数据分析的统一引擎
Apache Spark™ is a multi-language engine for executing data engineering, data science, and machine learning on singlenode machines or clusters.
ApacheSpark™是一个多语言(Python、Java、Scala、R)引擎,用于在单节点机器或集群上执行数据工程、数据科学和机器学习。
1.Spark介绍_第2张图片
Spark 是加州大学伯克利分校AMP实验室(Algorithms Machines and People Lab)开发的通用大数据处理框架。Spark的发展历史,经历过几大重要阶段:

  1. 2009年,Spark诞生于伯克利大学的AMPLab实验室
  2. 2010年,伯克利大学正式开源了Spark项目
  3. 2013年6月,Spark成为了Apache基金会孵化项目
  4. 2014年2月,Spark成为了Apache的顶级项目
  5. 2015年,Spark变得愈发火爆,大量的国内公司开始重点部署或者使用Spark
  6. 2016年,Spark2.0发布
  7. 2019年,Spark3.0发布
  8. 目前最新版本Spark3.2.x

2.Spark主要功能

1.Spark介绍_第3张图片
Simple简单、Fast快、 Scalable可扩展、 Unified统一

  1. 批处理/流数据
    使用您喜欢的语言:Python、SQL、Scala、Java或R,统一批量处理数据和实时流媒体处理。
  2. SQL分析
    执行快速的分布式ANSI SQL查询。比大多数数据仓库的运行速度更快。
  3. 大规模数据科学
    对pb级的数据进行探索性数据分析(EDA),而不必诉诸于数据采样。
  4. 机器学习
    在单机上训练机器学习算法,并使用相同的代码来扩展到数千台机器的容错集群。

3.Spark与Hadoop对比

Spark仅做计算,而Hadoop生态圈不仅有计算MapReduce、也有存储HDFS和资源管理调度YARN,HDFS和YARN仍是许多大数据体系的核心架构。Spark依然需要Hadoop的支持。
1.Spark介绍_第4张图片
MR在计算过程中中间结果涉及到多次磁盘持久化。
1.Spark介绍_第5张图片
Spark 借鉴了 MapReduce 思想发展而来,保留了其分布式并行计算的优点并改进了其明显的缺陷。让中间数据存储在内存中提
高了运行速度、并提供丰富的操作数据的API提高了开发速度。

注意:在计算层面,Spark相比较MapReduce有巨大的性能优势,但至今仍有许多计算工具基于MR构架,比如非常成熟的Hive。

4.Spark技术栈

1.Spark介绍_第6张图片
Apache Spark 是用于大规模数据处理的统一分析引擎。它提供Java、Scala、Python 和 R 中的高级 API,以及支持通用执行图的优化引擎。它还支持一组丰富的高级工具,包括用于 SQL 和结构化数据处理的Spark SQL 、用于机器学习的MLlib、用于图形处理的GraphX 以及用于增量计算和流处理的结构化流。

  1. Spark Core
    Spark的核心,是Spark运行的基础。Spark Core以RDD为数据抽象,提供Python、Java、Scala、R语言的API,可以编程进行海量离线数据批处理计算。
  2. Spark SQL
    Spark SQL是Spark用来操作结构化数据的组件。通过SparkSQL对数据进行处理。
  3. Spark Streaming
    Spark Streaming是Spark平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的API。
  4. Spark MLlib
    MLlib是Spark提供的一个机器学习算法库。MLlib不仅提供了模型评估、数据导入等额外的功能,还提供了一些更底层的机器学习原语。
  5. Spark GraphX
    GraphX是Spark面向图计算提供的框架与算法库。

5.PySpark 与 Spark区别

概念补充

  1. 类库∶一堆别人写好的代码,你可以导入进行使用。Pandas就是Python的类库,它常用于小规模数据集的处理
  2. 框架∶可以独立运行,并提供编程结构的一种软件产品。Spark就是一个独立的框架,它常用于大规模数据集的处理 无论大小数据集,都有合适的技术栈去处理,选择合适的技术也是很重要。

PySpark和Spark区别
PySpark: 是Python的库, 由Spark官方提供,专供Python语言使用, 类似Pandas一样是一个库。
Spark: 是一个独立的框架, 包含PySpark的全部功能, 除此之外, Spark框架还包含了对R、Java、Scala语言的支持,功能更全。可以认为是通用Spark。

1.Spark介绍_第7张图片

你可能感兴趣的:(Spark框架,spark,大数据,hadoop)