Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎
Apache Spark是一个快速的、多用途的集群计算系统。它提供了Java、Scala、python和R的高级API,以及一个支持通用的执行图计算的优化过的引擎,它还支持一组丰富的高级工具,包括使用SQL处理结构化数据处理的Spark SQL,用于机器学习的MLlib,用于图计算的Graphx,以及Spark Streaming
Spark的特点
1. 速度快
与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上,Spark实现了高校的DAG执行引擎,可以通过基于内存来高校处理数据流
2. 易用
Spark支持Java、python和Scala的api,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且spark支持交互式的python和Scala的shell,可以非常方便地在这些shell中使用spark集群来验证解决问题的方法
3. 通用
spark提供了统一的解决方案,spark可以用于批处理、交互式查询、实时流处理、机器学习、图计算。这些不同类型的处理都可以在同一个应用中无缝使用。spark统一的解决方案非常具有吸引力,毕竟任何公司都有想用统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物力成本
4. 兼容性
spark可以非常方便地与其他的开源产品进行融合。比如,spark可以使用Hadoop的yarn和apache mesos作为它的资源管理和调度器,并且可以处理所有Hadoop支持的数据,包括hdfs、hbase和cassandra等。这对于已经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用spark的强大处理能力。spark也可以不依赖于第三方的资源管理和调度器,它实现了standalone作为其内置的资源管理和调度框架,这样进一步降低了spark的使用门槛,使得所有人都可以非常容易地部署和使用spark。此外,spark还提供了在ec2上部署standalone的spark集群的工具