首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

大数据:Spark

Apache Spark 是一个开源的、围绕速度、易用性和复杂分析构建的大数据处理框架。它最初由加州大学伯克利分校的 AMPLab 开发,并在 2010 年成为 Apache 的开源项目之一。Spark 提供了一个全面、统一的框架,用于管理各种不同性质的数据集和数据源的大数据处理需求,包括批量数据或实时的流数据 。

与 Hadoop 的 MapReduce 技术相比,Spark 具有显著的速度优势,因为它可以在内存中的运行速度提升达到 100 倍,甚至在磁盘上的运行速度也能提升至 10 倍。此外,Spark 支持使用 Java、Scala 或 Python 编写程序,并自带了一个超过 80 个高阶操作符集合,支持 SQL 查询、流数据、机器学习和图表数据处理 。

Spark 的核心是弹性分布式数据集(RDD),它是一个不可变、可分区、可并行计算的数据集合。RDD 提供了丰富的 API 来操作数据集,并且具有容错性,因为 RDD 知道如何重新创建和重新计算数据集。Spark 还引入了 DataFrame 和 DataSet 作为更高级的抽象,它们在 RDD 的基础上提供了结构化数据操作的能力 。

Spark 生态系统包括多个附加库,如 Spark Streaming 用于实时流数据处理,Spark SQL 用于执行 SQL 查询,MLlib 用于机器学习,GraphX 用于图计算。此外,Spark 还支持多种数据源和存储系统,包括 HDFS、Apache Cassandra、Apache HBase 和 Amazon S3 等 。

在部署方面,Spark 支持多种部署模式,包括本地模式、独立集群模式、高可用模式、在 YARN 上运行的集群模式、在 Mesos 上运行的集群模式,以及云端集群模式 。

Spark Streaming 作为 Spark 的一个组件,它基于微批量方式的计算和处理,可以用于处理实时的流数据。Structured Streaming 是 Spark 2.0 新增的实时计算框架,构建于 Spark SQL 引擎,统一了流和批的编程模型 。

Spark SQL 为结构化数据处理提供了一个编程模块,引入了 DataFrame 作为数据结构,支持多种数据源和数据类型,同时提供了 load 和 save 函数用于数据的读取和写入 。

在资源规划方面,Spark 允许调节 Executor 数量、内存和 CPU 核心等资源,以优化作业性能。合理配置这些参数可以提高 Spark 作业的执行效率和资源利用率 。

Spark 相较于 MapReduce 的优势包括低延迟、支持 DAG 模型和分布式内存计算,使其在大数据处理领域具有广泛的应用 。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/ONqolW0YbW4gD4_npdkSdSog0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券