Apache Spark的生态系统

297 阅读4分钟

目录

阅读时间: 4 分钟

Apache Spark是Hadoop MapReduce的一个强大的替代方案,具有多个丰富的功能特性,如机器学习、实时流处理和图形计算。它是一个开源的分布式集群计算框架。它的设计涵盖了广泛的工作负载,如批量应用、迭代算法、交互式查询和流媒体。除了在各自的系统中支持所有这些工作负载外。它减少了维护独立工具的管理负担。

星火核心组件

由于其内存计算能力,它提供了高速度。在Spark核心中,我们使用一个特殊的数据结构RDD。RDD是指**弹性分布式数据集**。当我们需要在Hadoop MapReduce等计算系统中共享或重用数据时。在像Hadoop MapReduce这样的分布式计算系统中,数据共享或重用需要将数据存储在像Amazon S3或HDFS这样的中间存储中。这就减慢了整体计算速度。因为在将数据存储在这些中间稳定的数据存储中需要进行多次复制、IO操作和序列化。弹性分布式数据集通过允许--容错的 "内存 "计算来克服Hadoop MapReduce的这个缺点。

对RDDs的操作

i) 转换

粗粒度的操作,如对现有的RDDs进行join、union、filter或map操作,产生一个新的RDD,其操作的结果被称为转换。Spark中的所有转换都是懒惰的。Spark不会立即执行它们。它创建了一个脉络,跟踪所有应用于RDD的转换。

ii) 行动

行动是返回RDD计算的最终结果的函数。它使用线程图,以特定顺序将数据加载到RDD上。在所有转换完成后,Actions将最终结果返回给Spark驱动。Actions是提供非RDD值的操作。

Spark SQL组件1

在Spark SQL中,我们有一个可扩展的优化器用于SQL中的核心功能。这是一个面向成本的优化器。它帮助开发人员提高系统的生产力。Spark SQL也提高了他们编写的查询的性能。它与HIVE数据完全兼容。Hive定义为一个开源的数据仓库系统。它建立在Hadoop之上。这有助于查询和分析存储在Hadoop文件中的大型数据集。

Spark允许你用SQL来处理这些数据。数据帧等同于关系表。它们可以从任何外部数据库、结构化文件或已经存在的RDDs中构建。数据框架具有RDD的所有特性,如不可变、有弹性和内存,但有一个额外的特性,即结构化和易于操作。Dataframe API也可用于Scala、Python、R和Java。

Apache Spark Streaming

Spark Streaming是一个轻量级的API。它允许开发者轻松地执行批处理和实时数据流。它提供安全、可靠和快速的实时数据流处理。Spark Streaming是其中一个独特的功能。它使Spark有可能承担起Apache Storm的角色。Spark Streaming主要使你能够为实时流数据创建分析和互动的应用程序。 它对在线广告非常有用。也适用于运动、金融、供应链管理等。

Apache Spark MLlib

MLlib是一个高于Spark的分布式机器学习框架。因为基于分布式内存的Spark架构。MLlib使用起来非常简单,而且可扩展。它与各种编程语言兼容。MLlib也很容易与其他工具集成。通过MLlib,可扩展管道的部署和开发变得更加容易。

创建MLlib背后的动机是使机器学习可扩展和容易。它包含有各种机器学习算法的实现的机器学习库。例如,聚类、回归、分类和协同过滤。一些低级别的机器学习基元,如通用的梯度下降优化算法,也存在于MLlib中。

Apache Spark GrahphX

GraphX是Spark上面的一个分布式图形处理框架。它提供了一个表达图计算的API。这可以通过使用Pregel抽象API对用户定义的图进行建模。它还为这个抽象提供了一个优化的运行时间。GraphX使用户能够大规模地构建、转换和推理数据。它已经有了一个常用算法库。对于跨世界的操作,GraphX是一个API。

总结

在这篇博客中,我们注意到这是Apache Spark生态系统的组件正在使其流行。因为它的组件提供了使用的便利性。事实上,它成为所有类型的数据处理的通用平台。

分享一下Knol。

相关信息