Apache Spark 的发展历史?

Apache Spark 在 2009 年作为加州大学伯克利分校 AMPLab 的一个研究项目而问世,专注于数据密集型应用程序领域的学生、研究人员和教职员工在此项目中开展协作。Spark 的目标是打造一个全新的针对快速迭代处理(如机器学习和交互式数据分析)进行过优化的框架,与此同时保留 Hadoop MapReduce 的可扩展性和容错能力。第一篇题为《Spark: Cluster Computing with Working Sets》的论文发表于 2010 年 6 月,而 Spark 是 BSD 许可协议项下的开源系统。2013 年 6 月,Spark 在 Apache Software Foundation (ASF) 进入孵化状态,并于 2014 年 2 月被确定作为 Apache 顶级项目之一。Spark 可以在 Apache Mesos 上,但最常见的还是在 Apache Hadoop 上单独运行。

Hadoop MapReduce 是一种用于处理大数据集的编程模型,它采用并行的分布式算法。开发人员可以编写高度并行化的运算符,而不用担心工作分配和容错能力。不过,MapReduce 所面对的一项挑战是它要通过连续多步骤流程来运行某项作业。在每个步骤中,MapReduce 要读取来自集群的数据,执行操作,并将结果写到 HDFS。因为每个步骤都需要磁盘读取和写入,磁盘 I/O 的延迟会导致 MapReduce 作业变慢。

开发 Spark 的初衷就是为了突破 MapReduce 的这些限制,它可以执行内存中处理,减少作业中的步骤数量,并且跨多项并行操作对数据进行重用。借助于 Spark,将数据读取到内存、执行操作和写回结果仅需要一个步骤,大大地加快了执行的速度。Spark 还能使用内存中缓存显著加快在相同数据集上重复调用某函数的机器学习算法的速度,进而重新使用数据。数据重用通过在弹性分布式数据集 (RDD) 上创建数据抽象—DataFrames 得以实现,而弹性分布式数据集是一个缓存在内存中并在多项 Spark 操作中重新使用的对象集合。它大幅缩短了延迟,使 Spark 比 MapReduce 快数倍,在进行机器学习和交互式分析时尤其明显。

主要区别:Apache Spark 与Apache Hadoop

除了 Spark 和 Hadoop MapReduce 的设计差异,很多组织还发现这两个大数据框架之间存在互补性,并且会同时使用二者来克服更广泛的业务挑战。

Hadoop 是一种开源框架,它将 Hadoop 分布式文件系统 (HDFS) 用于存储,将 YARN 作为管理由不同应用程序所使用的计算资源的方式,并且实现 MapReduce 编程模型来充当执行引擎。在一般 Hadoop 实现中,还会部署不同的执行引擎,如 Spark、Tez 和 Presto。

Spark 是一种专门用于交互式查询、机器学习和实时工作负载的开源框架。它没有自己的存储系统,但会在其他存储系统,如 HDFS,或其他热门存储,如 Amazon Redshift Amazon S3 、Couchbase、Cassandra 等之上运行分析。Hadoop 上的 Spark 会利用 YARN 来分享常见的集群和数据集作为其他 Hadoop 引擎,确保服务和响应的一致性水平。

交互式查询

Spark SQL 是提供低延迟交互式查询的分布式查询引擎,其速度最高可比 MapReduce 快 100 倍。它包含一个基于成本的优化器、列式存储,能够生成代码并用于快速查询,它还可以扩展到具有数千个节点。业务分析师可以使用标准的 SQL 或 Hive 查询语言来查询数据。开发人员可以使用以 Scala、Java、Python 和 R 提供的 API。它支持各种开箱即用的数据源,包括 JDBC、ODBC、JSON、HDFS、Hive,ORC 和 Parquet。其他热门存储—Amazon Redshift、Amazon S3、Couchbase、Cassandra、MongoDB、Salesforce.com、Elasticsearch,以及其他许多存储,都可以在 Spark 程序包 生态系统中找到。

GraphX

Spark GraphX 是构建在 Spark 之上的分布式图形处理框架。GraphX 提供 ETL、探索性分析和迭代图形计算,让用户能够以交互方式大规模构建、转换图形数据结构。它自带高度灵活的 API 和一系列分布式图形算法选项。

AWS 为 Apache Spark 提供哪些产品?

Amazon EMR 是在云中部署 Apache Spark 的最佳位置,因为它既具备商用 Hadoop 和 Spark 分配的集成和测试严谨性,又有云的规模、简单性和成本效益。它让您可以在几分钟内启动 Spark 集群,而无需执行节点预置、集群设置、Spark 配置或集群优化。EMR 让您可以在短短几分钟内预置一个、上百个或成千上万个计算实例。您可以使用 Auto Scaling ,让 EMR 自动扩展您的 Spark 集群来处理任何规模的数据,并在作业结束时再次缩减,以避免为未使用的容量付费。您可以通过 Amazon EC2 预留实例 承诺使用一段固定的时间,实现最多 75% 的节省,或使用 EC2 Spot 在备用的 AWS 计算容量上运行您的集群,实现最多 90% 的节省,从而降低您的账单金额。

立即 创建账户 ,开始在 AWS 上使用 Apache Spark。

AWS 对 Internet Explorer 的支持将于 07/31/2022 结束。受支持的浏览器包括 Chrome、Firefox、Edge 和 Safari。 了解详情 »