赞
踩
Apache Spark™ is a unified analytics engine for large-scale data processing.
—— http://spark.apache.org/
Spark是用于大规模数据处理的统一分析引擎。
Spark是基于内存计算的大数据并行计算框架。
2009年诞生于加州大学伯克利分校AMPLab,
2010年开源,
2013年6月成为Apache孵化项目,
2014年2月成为Apache顶级项目。
目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目。
Spark是一个开源的类似于Hadoop MapReduce的通用的并行计算框架。
它基于MapReduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Spark中的Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
Spark是MapReduce的替代方案,兼容HDFS、Hive,并且可融入Hadoop的生态系统,能够弥补MapReduce的不足。
与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上。
Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流。
spark比MapReduce快的两个主要原因:
–spark的job输出结果可以保存在内存中,MapReduce的job输出结果只能保存在磁盘中。spark可以在内存中获取前面job的数据,MapReduce只能够通过大量的磁盘io进行操作。
–MapReduce是以进程方式运行在集群中;比如有100个maptask,就需要启动100个进程。
spark是以线程的方式运行在进程中。100个maptask可以在一个进程中启动100个线程。
Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在这些shell中使用Spark集群来验证解决问题的方法。
Spark提供了统一的解决方案。
Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。
Runs Everywhere。
Spark可以非常方便地与其他的开源产品进行融合。
例如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且可以处理所有Hadoop支持的数据。
可以访问HDFS, Alluxio, Apache Cassandra, Apache HBase, Apache Hive和数百个其他数据源中的数据。
spark程序就是一个计算任务的程序,哪里可以给当前这个任务提供计算资源,就可以把这个程序提交到哪里去运行.
参考Spark官网: http://spark.apache.org/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。