Spark Core 核心知识--RDD

版权声明:版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/qq_42246689/article/details/86253396

目录

1、Spark核心功能

1.1 SparkContext

1.2 存储体系

1.3 计算引擎

1.4 部署模式

2、Spark扩展功能

2.1 Spark

2.2 Spark Streaming

2.3 Spark Graphx

2.4 Spark MLlib

3、Spark核心概念

未完待续!!!!!


1、Spark核心功能

Spark Core 提供 Spark 最基础的最核心的功能,主要包括: 

1.1 SparkContext

通常而言,DriverApplication 的执行与输出都是通过 SparkContext 来完成的,在正式提交 Application 之前,首先需要初始化 SparkContext。SparkContext 隐藏了网络通信、分布式 部署、消息通信、存储能力、计算能力、缓存、测量系统、文件服务、Web 服务等内容, 应用程序开发者只需要使用 SparkContext 提供的 API 完成功能开发。 SparkContext 内置的 DAGScheduler 负责创建 Job,将 DAG 中的 RDD 划分到不同的 Stage, 提交 Stage 等功能。 SparkContext 内置的 TaskScheduler 负责资源的申请、任务的提交及请求集群对任务的调度 等工作。

1.2 存储体系

Spark 优先考虑使用各节点的内存作为存储,当内存不足时才会考虑使用磁盘,这极大地 减少了磁盘 I/O,提升了任务执行的效率,使得 Spark 适用于实时计算、流式计算等场景。 此外,Spark 还提供了以内存为中心的高容错的分布式文件系统 Tachyon 供用户进行选择。 Tachyon 能够为 Spark 提供可靠的内存级的文件共享服务。 

1.3 计算引擎

计算引擎由 SparkContext 中的 DAGScheduler、RDD 以及具体节点上的 Executor 负责执行 的 Map 和 Reduce 任务组成。DAGScheduler 和 RDD 虽然位于 SparkContext 内部,但是在 任务正式提交与执行之前将 Job 中的 RDD 组织成有向无关图(简称 DAG)、并对 Stage 进 行划分决定了任务执行阶段任务的数量、迭代计算、shuffle 等过程。 

1.4 部署模式

由于单节点不足以提供足够的存储及计算能力,所以作为大数据处理的 Spark 在SparkContext 的 TaskScheduler 组件中提供了对 Standalone 部署模式的实现和 YARN、Mesos 等分布式资源管理系统的支持。通过使用 Standalone、YARN、Mesos、kubernetes、Cloud 等部署模式为 Task 分配计算资源,提高任务的并发执行效率。除了可用于实际生产环境 的 Standalone、YARN、Mesos、kubernetes、Cloud 等部署模式外,Spark 还提供了 Local 模式和 local-cluster 模式便于开发和调试。 

2、Spark扩展功能

为了扩大应用范围,Spark 陆续增加了一些扩展功能,主要包括: 

2.1 Spark

SQL 由于 SQL 具有普及率高、学习成本低等特点,为了扩大 Spark 的应用面,因此增加了对 SQL 及 Hive 的支持。Spark SQL 的过程可以总结为:首先使用 SQL 语句解析器(SqlParser) 将 SQL 转换为语法树(Tree),并且使用规则执行器(RuleExecutor)将一系列规则(Rule) 应用到语法树,最终生成物理执行计划并执行的过程。其中,规则包括语法分析器 (Analyzer)和优化器(Optimizer)。 Hive 的执行过程与 SQL 类似。 
2.2Spark Streaming

2.2 Spark Streaming

Spark Streaming与Apache Storm类似,也用于流式计算。Spark Streaming支持Kafka、Flume、 Twitter、MQTT、ZeroMQ、Kinesis 和简单的 TCP 套接字等多种数据输入源。输入流接收器 (Receiver)负责接入数据,是接入数据流的接口规范。Dstream 是 Spark Streaming 中所 有数据流的抽象,Dstream 可以被组织为 DStreamGraph。Dstream 本质上由一系列连续的 RDD 组成。 

2.3 Spark Graphx

Spark 提 供 的 分 布 式 图 计 算 框 架 。 GraphX 主 要 遵 循 整 体 同 步 并 行 计 算 模 式 (BulkSynchronous Parallell,简称 BSP)下的 Pregel 模型实现。GraphX 提供了对图的抽象 Graph,Graph 由顶点(Vertex)、边(Edge)及继承了 Edge 的 EdgeTriplet(添加了 srcAttr 和 dstAttr 用来保存源顶点和目的顶点的属性)三种结构组成。GraphX 目前已经封装了最 短路径、网页排名、连接组件、三角关系统计等算法的实现,用户可以选择使用。

2.4 Spark MLlib

Spark 提供的机器学习框架。机器学习是一门涉及概率论、统计学、逼近论、凸分析、算 法复杂度理论等多领域的交叉学科。MLlib 目前已经提供了基础统计、分类、回归、决策 树、随机森林、朴素贝叶斯、保序回归、协同过滤、聚类、维数缩减、特征提取与转型、 频繁模式挖掘、预言模型标记语言、管道等多种数理统计、概率论、数据挖掘方面的数 学算法。 

3、Spark核心概念


转载的大哥请标明出处:https://blog.csdn.net/qq_42246689/article/details/86253396

猜你喜欢

转载自blog.csdn.net/qq_42246689/article/details/86253396