Apache Spark 的组件
Spark是一个集群计算系统。与其他集群计算系统(如 Hadoop)相比,它更快。它在Python、Scala 和Java中提供高级 API。并行作业很容易在 Spark 中编写。在本文中,我们将讨论 Apache Spark 的不同组件。
Spark 处理大量数据集,是当前最活跃的 Apache 项目。 Spark 是用 Scala 编写的,并提供Python、Scala、 Java和 R 的 API。Apache Spark 最重要的特性是它的内存集群计算,它扩展了数据处理的速度。 Spark 是一个额外的通用和更快的处理平台。它帮助我们以比 Hadoop 相对快的速度运行程序(即)在内存中快一百倍,甚至在磁盘上也快十倍。火花的主要特点是:
- 多语言支持: Apache Spark 支持多种语言;它提供用 Scala、 Java、 Python或 R 编写的 API。它允许用户用多种语言编写应用程序。
- 速度快: Apache Spark 最重要的特性是它的处理速度。它允许应用程序在 Hadoop 集群上运行,在内存上快一百倍,在磁盘上快十倍。
- 随处运行: Spark 将在多个平台上运行,同时不会提高处理速度。它将在 Hadoop、Kubernetes、Mesos、Standalone 甚至在云中运行。
- 通用性:它由 Spark Streaming 和 GraphX 旁边的大量机器学习库(即 MLlib、DataFrames 和 SQL)提供支持。允许混合使用与应用程序相关联的库。在同一个应用程序中混合流、SQL 和复杂分析的特性使 Spark 成为一个通用框架。
- 高级分析: Apache Spark 还支持前面提到的“Map”和“Reduce”。但是,在 MapReduce 方面,它支持流数据、SQL 查询、图算法和机器学习。因此,Apache Spark 可用于执行高级分析。
Spark的组成部分:
上图说明了所有的火花组件。让我们详细了解每个组件:
- Spark Core: Apache Spark 提供的所有功能都建立在最高的 Spark Core 之上。它通过提供内存计算能力来提供速度。 Spark Core 是巨型数据集并行分布式处理的基础。它是基本 I/O 功能的主要支柱,在编程和观察 spark 集群的作用方面具有重要意义。它包含与集群上的调度、分发和监控作业、任务调度、故障恢复相关的所有组件。该组件的功能是:
- 它包含 spark 的基本功能。 (任务调度、内存管理、故障恢复、与存储系统交互)。
- 定义 RDD 的 API 的主页。
- Spark SQL 结构化数据: Spark SQL 组件构建在 Spark 核心之上,用于提供对数据的结构化处理。它提供对一系列数据源的标准访问。它包括Hive、JSON 和 JDBC。它支持通过 SQL 或 Hive 语言查询数据。这也适用于访问结构化和半结构化信息。它还提供跨流数据和历史数据的强大的交互式分析应用程序。 Spark SQL 可能是 spark 中的一个新模块,它将相关进程与 spark 与编程 API 集成在一起。该模块的主要功能是:
- 它是一个用于处理结构化数据的 Spark 包。
- 它支持多种数据源,包括 hive tablet、parquet、json。
- 它允许开发人员将 SQK 与Python、scala 和Java中的 RDD 支持的编程数据操作混合在一起。
- Spark Streaming: Spark Streaming 允许实时知识流的可提升、高吞吐量、容错的流处理。 Spark 可以从诸如水槽、TCP 套接字之类的源访问数据。它将运行不同的算法,在其中接收文件系统、数据库和实时仪表板中的数据。 Spark 使用 Micro-batching 进行实时流式传输。微批处理是一种允许方法或任务将流视为一系列小批量信息的技术。因此,火花流将实时数据分组为小批量。它将其传送到批处理系统进行处理。该模块的功能是:
- 支持处理实时数据流,例如生产 Web 服务生成的日志文件。
- 该模块中定义的 API 与 spark core RDD API 非常相似。
- Mlib 机器学习: spark 中的 MLlib 是一个可扩展的机器学习库,包含各种机器学习算法。 MLlib 创建背后的动机是使机器学习的实现变得简单。它包含机器学习库和各种算法的实现。例如,聚类、回归、分类和协同过滤。
- GraphX 图形处理:它是图形和图形并行执行的 API。有我们存储数据的网络分析。在图中也可以进行聚类、分类、遍历、搜索和寻路。它通常优化了我们如何在图中表示顶点和边。当顶点和边是原始数据类型时,GraphX 还优化了我们如何表示它们。为了支持图计算,它支持子图、连接顶点和聚合消息等基本操作,以及 Pregel API 的优化变体。
Apache Spark的用途: spark框架的主要应用有:
- 系统生成的数据不够一致,无法混合进行分析。为了从系统中获取一致的信息,我们将使用提取、转换和加载等过程,它可以减少时间和成本,因为它们在 spark 中非常有效地实现。
- 很难处理像日志文件这样的时间生成数据。 Spark 能够很好地处理信息流和重用操作。
- 由于 spark 能够将信息存储在内存中并且可以快速运行连续查询,因此可以直接找出可用于特定类型数据的机器学习算法。