美文网首页
Spark了解一下

Spark了解一下

作者: 叛逆闲人 | 来源:发表于2018-12-26 14:01 被阅读0次
    Spark生态系统

    Spark 内存计算框架

    Spark 是由 Berkeley 的 AMPLab 于 2009 年提出的一种由Scala 语言实现的大数据计算框架,既兼容了 Hadoop中MapReduce的可扩展性和容错性等优点,同时引入了内存计算的概念。Spark 采用弹性分布式数据集 (resilient distributed datasets,RDD)数据结构将算法的中间结果保存在内存中,使其更适用于反复迭代运行的应用程序,如交互式数据挖掘和机器学习算法;并通过数据集血统(lineage)和检查点机制[9]实现了系统容错,解决了迭代算法在Hadoop 下不断进行磁盘访问而造成的性能损失问题。由于Spark 能够部署在通用平台上,并具有可靠性(reliable)、可扩展性(scalable)、高效性(efficient)、低成本(economical)等优点,目前已被广泛应用于大规模数据处理过程。为支持不同应用场景下的大数据处理,Spark 已经发展
    成为包含众多子项目的大数据计算平台,如图所示,包括了基于 Spark 核心组件的可扩展机器学习函数库 MLlib,实现了基于 RDD 的 K-means 算法,并且初始中心选取采用了 K-means 算法,然而 MLlib 中的 K-means 算法核心没有改变,在执行过程中,仍存在大量不必要的距离计算,影响算法的运算效率。因此基于 Spark 的 K-means 算法并行化研究仍在进行中。图中Spark Core是Spark生态系统的核心,Spark SQL和 Shark支持结构化数据 SQL 查询与分析的查询引擎,MLbase 提供了机器学习功能的系统,MLlib 为底层的分布式机器学习库,还有并行图计算框架 GraphX、流计算框架Spark Streaming、内存分布式文件系统 Tachyon 及资源管理框架 MESOS[20]等子项目,这些子项目在 Spark 上层提供了更高层、更丰富的计算范式。

    Spark框架并行模型

    并行计算是指同时使用多个计算资源来解决一个大型复杂的计算问题的方式。在 Spark 中实现算法并行化过程如上图所示,首先通过将一个任务分解为多个子任务,然后将其分配给不同的处理节点,各个处理节点之间相互协同,并行地执行子任务,最终将所有子任务的结果合并为最终结果输出。

    相关文章

      网友评论

          本文标题:Spark了解一下

          本文链接:https://www.haomeiwen.com/subject/mzdhlqtx.html