什么是Spark

一、Spark是什么?
简单来说,Spark是一个通用计算框架,是一个用来实现快速而通用的集群计算的平台,是一个大一统的软件栈(Spark 项目包含多个紧密集成的组件)。
Spark 的核心是一个对由很多计算任务组成的、运行在多个工作机器或者是一个计算集群上的应用进行调度、 分发以及监控的计算引擎,有着速度快和通用的特点,支持为各种不同应用场景专门设计的高级组件,比如 SQL 和机器学习等。
作为下一代大数据处理引擎,Spark 继承自 MapReduce ,它主要有三个优点:1、速度更快,2,更易用,3、可以满足不同应用场景下的需求。
1、速度更快:主要特点是Spark可以在内存中进行计算,因此更快。不过即使是在磁盘上进行计算,Spark依然比MapReduce更加高效。
2、更易用:Spark提供了丰富的简单易用的API,支持python,java和scala和sql,Spark Core 中还包含了对弹性分布式数据集( resilient distributed dataset,简称 RDD) 的 API 定义。 RDD 表示分布在多个计算节点上可以并行操作的元素集合,是Spark 主要的编程抽象,这些高级 API 剥离了对集群本身的关注,你可以专注于你所要做的计算本身,相对于编写MapReduce 而言,编写RDD程序更简单。
3、可以满足不同应用场景下的需求:Spark 是一个通用引擎,可用它来完成各种各样的运算,包括:传统批处理应用,交互式查询,流式计算,机器学习,图计算等,SQL 查询,文本处理。

二、Spark所包含的组件
如下图所示:
这里写图片描述

1、Spark Core:Spark Core 实现了 Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块,还包含了对弹性分布式数据集( resilient distributed dataset,简称 RDD) 的 API 定义;
2、Spark SQL :是 Spark 用来操作结构化数据的程序包,支持Hive SQL的语法,支持多种数据源(如 Hive 表、 Parquet 以及 JSON 等),支持开发者将 SQL 和传统的 RDD 编程的数据操作方式相结合,不论是使用 Python、 Java 还是 Scala;
3、Spark Streaming :是 Spark 提供的对实时数据进行流式计算的组件,可以操作内存,硬盘中的数据以及实时数据流(生产环境中的网页服务器日志, 或是网络服务中用户提交的状态更新组成的消息队列,都是数据流),Spark Streaming 提供了用来操作数据流的 API;
4、MLlib:Spark中包含的,一个提供常见的机器学习的功能的程序库,MLlib 提供了很多种机器学习算法, 包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能;
5、GraphX :是用来操作图(比如社交网络的朋友关系图)的程序库,可以进行并行的图计算;
6、集群管理器:为了可以高效地在一个计算节点到数千个计算节点之间伸缩计算,同时获得最大灵活性, Spark 支持在各种集群管理器( clustermanager) 上运行, 包括 Hadoop YARN、 Apache Mesos,以及 Spark 自带的一个简易调度器,叫作独立调度器;

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

恶魔的步伐

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值