spark3.0教程:介绍

百度百科

Apache Spark 是专为 大规模数据处理 而设计的快速通用的 计算引擎。

Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的 类Hadoop MapReduce的通用并行框架

Spark,拥有Hadoop MapReduce所具有的优点

不同于MapReduce的是:Job中间输出结果可以 保存在内存中,从而 不再需要读写HDFS,因此Spark能更好地适用于 数据挖掘 与 机器学习 等需要迭代的MapReduce的算法。

一句话理解

spark 替代 mapreduce (但不是完全替代)

官网首页

http://spark.apache.org/

特点

摘自 官网首页

  • 速度快。比 hadoop 快100倍。

  • 使用方便。使用Java,Scala,Python,R和SQL快速编写应用程序。

  • 使用SQL进行分析

  • 多种方式部署运行。yarn、k8s、 standalone(独立集群)

核心模块

  • Spark Core
    Spark Core 中提供了 Spark 最基础与最核心的功能,Spark 其他的功能如:Spark SQL,Spark Streaming,GraphX, MLlib 都是在 Spark Core 的基础上进行扩展的

  • Spark SQL
    Spark SQL 是 Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用 SQL 或者 Apache Hive 版本的 SQL 方言(HQL)来查询数据。

  • Spark Streaming
    Spark Streaming 是 Spark 平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的 API。

  • Spark MLlib
    MLlib 是 Spark 提供的一个机器学习算法库。MLlib 不仅提供了模型评估、数据导入等额外的功能,还提供了一些更底层的机器学习原语。

  • Spark GraphX
    GraphX 是 Spark 面向图计算提供的框架与算法库。

历史

  • 2009 年,Spark 诞生于伯克利大学的 AMPLab 实验室
  • 2010 年,伯克利大学正式开源了 Spark 项目
  • 2013 年 6 月,Spark 成为了 Apache 基金会下的项目
  • 2014 年 2 月,Spark 以飞快的速度成为了 Apache 的顶级项目
  • 2015 年至今,Spark 变得愈发火爆,大量的国内公司开始重点部署或者使用 Spark

Spark VS MapReduce

本质区别是 多个作业之间的 数据通信 :

  • Spark 多个作业之间数据通信是基于内存
  • MapReduce 是基于 HDFS(磁盘)

多线程 和 多进程

spark采用多线程方式,启动快

mapreduce采用多进程方式,启动慢

多线程是优点,同时也是缺点:多线程会出现资源争用,难以细粒度控制每个任务占用资源

spark提供多种算法库

提供 机器学习、图计算等算法库,方便使用

不完全替代 MapReduce

Spark 是基于内存的,有些计算可能需要大量占用内存,会由于内存不够导致 Job 执行失败

此时,使用 MapReduce 是更好的选择

所以 Spark 并不能完全替代 MR


原文出处:/show_1IXnL4WH3bt.html