赞
踩
Spark是专为大规模数据处理而设计的计算引擎。Spark拥有Hadoop MapReduce所具有的优点,但不同于MapReduce的是,Spark计算过程中的中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的算法。Spark是对 Hadoop 的补充,它可以通过名为 Mesos 的第三方集群框架,在Hadoop系统中并行运行。Spark凭借自己优良的性能,逐渐的替代了MapReduce,成为Hadoop中主流的计算框架。
计算速度快:
与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上。Spark实现了高效的DAG执行引擎,可以通过内存做存储来高效处理数据流。
高易用性:
Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的Shell,可以非常方便地在这些Shell中使用Spark集群来验证解决问题的方法。
高通用性:
Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。减少了开发和维护的人力成本和部署平台的物力成本。
高兼容性:
Spark可以非常方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase等。这对于已经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark的强大处理能力。
下图是Spark架构图,Spark计算框架可以分为三层,最底层是基础设施层,负责进行作业调度和集群控制。中间的Spark Core是Spark的核心,Spark的业务功能都是由Spark Core实现的。最上层是应用层,Spark可以用在多种场景下,Spark为不同的应用场景设计了不同的组件。
集群管理器:
Spark设计的目的之一是可以高效地在一个计算节点到数千个计算节点之间伸缩计算。为了实现这样的要求,同时获得最大灵活性,Spark支持在多种集群管理器(Cluster Manager)上运行,包括Hadoop YARN、Apache Mesos,以及Spark自带的一个独立调度器。
Spark Core:
实现了Spark的基本功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。