Spark是一个基于内存计算的开源集群计算系统,目的是更快速的进行数据分析。Spark由加州伯克利大学AMP实验室Matei为主的小团队使用Scala开发开发,其核心部分的代码只有63个Scala文件,很是轻量级。 Spark 提供了与 Hadoop 类似的开源集群计算环境,但基于内存和迭代优化的设计,Spark 在某些工做负载表现更优秀。算法
在2014上半年,Spark开源生态系统获得了大幅增加,已成为大数据领域最活跃的开源项目之一,当下已活跃在Hortonworks、IBM、Cloudera、MapR和Pivotal等众多知名大数据公司。那么Spark究竟以什么吸引了如此多的关注,这里咱们看向Dzone上的6个总结。shell
1. 轻量级快速处理。机器学习
着眼大数据处理,速度每每被置于第一位,咱们常常寻找能尽快处理咱们数据的工具。Spark容许Hadoop集群中的应用程序在内存中以100倍的速度运行,即便在磁盘上运行也能快10倍。Spark经过减小磁盘IO来达到性能提高,它们将中间处理数据所有放到了内存中。工具
Spark使用了RDD(Resilient Distributed Dataset)的理念,这容许它能够透明的内存中存储数据,只在须要时才持久化到磁盘。这种作法大大的减小了数据处理过程当中磁盘的读写,大幅度的下降了所需时间。oop
2. 易于使用,Spark支持多语言。性能
Spark容许Java、Scala及Python,这容许开发者在本身熟悉的语言环境下进行工做。它自带了80多个高等级操做符,容许在shell中进行交互式查询。学习
3. 支持复杂查询。大数据
在简单的“map”及“reduce”操做以外,Spark还支持SQL查询、流式查询及复杂查询,好比开箱即用的机器学习机图算法。同时,用户能够在同一个工做流中无缝的搭配这些能力。优化
4. 实时的流处理。spa
对比MapReduce只能处理离线数据,Spark支持实时的流计算。Spark依赖Spark Streaming对数据进行实时的处理,固然在YARN以后Hadoop也能够借助其余的工具进行流式计算。对于Spark Streaming,Cloudera的评价是:
5. 能够与Hadoop和已存Hadoop数据整合。
Spark能够独立的运行,除了能够运行在当下的YARN集群管理以外,它还能够读取已有的任何Hadoop数据。这是个很是大的优点,它能够运行在任何Hadoop数据源上,好比HBase、HDFS等。这个特性让用户能够轻易迁移已有Hadoop应用,若是合适的话。
6. 活跃和无限壮大的社区。
Spark起源于2009年,当下已有超过50个机构250个工程师贡献过代码,和去年六月相比,代码行数几乎扩大三倍,这是个使人艳羡的增加。