Spark的模块组成(入门必看)

前言

上期文章,介绍了Spark不仅能够在内存中进行高效运算,还是一个大一统的软件栈,可以适用于各种各样原本需要多种不同的分布式平台的场景。接下来简要介绍Spark的模块组成。

本期学习目标

  • Spark的模块组成
  • Spark Core
  • Spark SQL
  • Spark Streaming
  • MLlib
  • GraphX
  • SparkR

Spark的模块组成

Spark的各个组成模块如下:
在这里插入图片描述

  • Spark 基于 Spark Core 建立了 Spark SQL、Spark Streaming、MLlib、GraphX、SparkR等核心组件;
  • 基于这些不同组件又可以实现不同的计算任务;
  • 这些计算任务的运行模式有:本地模式、独立模式、YARN、Mesos等;
  • Spark任务的计算可以从HDFS、HBase、Cassandra等多种数据源中存取数据。

Spark Core

Spark Core实现了Spark基本的核心功能,如下:

  • 基础设施
    SparkConf :用于定义Spark应用程序的配置信息;
    SparkContext :为Spark应用程序的入口,隐藏了底层逻辑,开发人员只需使用其提供的API就可以完成应用程序的提交与执行;
    SparkRPC :Spark组件之间的网络通信依赖于基于Netty实现的Spark RPC框架;
    SparkEnv :为Spark的执行环境,其内部封装了很多Spark运行所需要的基础环境组件;
    ListenerBus :为事件总线,主要用于SparkContext内部各组件之间的事件交互;
    MetricsSystem :为度量系统,用于整个Spark集群中各个组件状态的监控;

  • 存储系统
    用于管理Spark运行过程中依赖的数据的存储方式和存储位置,Spark的存储系统首先考虑在各个节点的内存中存储数据,当内存不足时会将数据存储到磁盘上,并且内存存储空间和执行存储空间之间的边界也可以灵活控制。

  • 调度系统
    DAGScheduler :负责创建job、将DAG中的RDD划分到不同Stage中、为Stage创建对应的Task、批量提交Task等;
    TaskScheduler :负责按照FIFO和FAIR等调度算法对Task进行批量调度;

  • 计算引擎
    主要由内存管理器、任务管理器、Task、Shuffle管理器等组成。

Spark SQL

Spark SQL 是 Spark 用来操作结构化数据的程序包,支持使用 SQL 或者 Hive SQL 或者与传统的RDD编程的数据操作结合的方式来查询数据,使得分布式数据的处理变得更加简单。

Spark Streaming

Spark Streaming 提供了对实时数据进行流式计算的API,支持Kafka、Flume、TCP等多种流式数据源。此外,还提供了基于时间窗口的批量流操作,用于对一定时间周期内的流数据执行批量处理。

MLlib

Spark MLlib 作为一个提供常见机器学习(ML)功能的程序库,包括分类、回归、聚类等多种机器学习算法的实现,其简单易用的 API 接口降低了机器学习的门槛。

GraphX

GraphX 用于分布式图计算,比如可以用来操作社交网络的朋友关系图,能够通过其提供的 API 快速解决图计算中的常见问题。

SparkR

SparkR 是一个R语言包,提供了轻量级的基于 R 语言使用 Spark 的方式,使得基于 R 语言能够更方便地处理大规模的数据集。


以上是本期分享,如有帮助请大家记得 点赞+关注+收藏 支持下哦~
下期讲解 Spark 的集群架构。

Spark系列
干货!Spark概述(入门必看)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值