Spark 在工作集上进行集群计算
Spark 是一种新的集群计算模型,由 Matei Zaharia 等人提出的,用于支持那些期望在并行操作中重复使用数据集的应用。Spark 提出了弹性分布式数据集(RDD)的抽象概念,能够在迭代式的机器学习任务上与 Hadoop 相比性能提升了 10 倍,也可以交互式的亚秒级查询 39G 的数据。
**集群计算模型**
传统的集群计算模型是基于非循环数据流模型的,如 MapReduce 和 Dryad 等系统。这些系统提供给用户一种编程模型,即创建非循环数据流图并将数据传输给一组计算节点,并实现了可扩展和自动故障恢复。但是,这些系统对于一些应用而言是不适用的,如迭代机器学习算法和交互式数据分析工具。
**RDD 抽象概念**
Spark 提出了弹性分布式数据集(RDD)的抽象概念。RDD 是一个只读的分布在集群各个节点上的数据集合,如果有分区失效的话 RDD 可以被重建。RDD 可以重复使用数据集,避免了每次从硬盘上重新加载数据,从而提高了性能。
**Spark 框架**
Spark 框架由以下几个组件组成:
* RDD:弹性分布式数据集,能够重复使用数据集。
* 任务调度:Spark 框架自动提供任务调度,能够自动管理任务的执行。
* 故障恢复:Spark 框架能够自动进行故障恢复,避免了用户的参与。
**应用场景**
Spark 框架适用于以下几个应用场景:
* 迭代机器学习算法:Spark 框架能够支持迭代机器学习算法,避免了每次从硬盘上重新加载数据。
* 交互式数据分析:Spark 框架能够支持交互式数据分析,提供了亚秒级查询的性能。
**优点**
Spark 框架相比传统的集群计算模型有以下几个优点:
* 高性能:Spark 框架能够提高迭代机器学习算法的性能,避免了每次从硬盘上重新加载数据。
* 可扩展性:Spark 框架能够自动提供任务调度和故障恢复,避免了用户的参与。
* 灵活性:Spark 框架能够支持多种应用场景,如迭代机器学习算法和交互式数据分析工具。
**结论**
Spark 框架是一种新的集群计算模型,能够支持那些期望在并行操作中重复使用数据集的应用。Spark 框架具有高性能、可扩展性和灵活性,能够满足多种应用场景的需求。