目录
什么是Spark?
Spark官网地址:http://spark.apache.org/
Apache Spark™是一个用于大规模数据处理的统一分析引擎。
速度
Apache Spark使用最先进的DAG调度器、查询优化器和物理执行引擎,实现了批处理和流式数据的高性能。
Spark数据处理速度秒杀MapReduce
Spark因为其处理数据的方式不一样,会比MapReduce快上很多。MapReduce是分步对数据进行处理的: ”从集群中读取数据,进行一次处理,将结果写到集群,从集群中读取更新后的数据,进行下一次的处理,将结果写到集群,等等…“ Booz Allen Hamilton的数据科学家Kirk Borne如此解析。
反观Spark,它会在内存中以接近“实时”的时间完成所有的数据分析:“从集群中读取数据,完成所有必须的分析处理,将结果写回集群,完成,” Born说道。Spark的批处理速度比MapReduce快近10倍,内存中的数据分析速度则快近100倍。
如果需要处理的数据和结果需求大部分情况下是静态的,且你也有耐心等待批处理的完成的话,MapReduce的处理方式也是完全可以接受的。
但如果你需要对流数据进行分析,比如那些来自于工厂的传感器收集回来的数据,又或者说你的应用是需要多重数据处理的,那么你也许更应该使用Spark进行处理。
大部分机器学习算法都是需要多重数据处理的。此外,通常会用到Spark的应用场景有以下方面:实时的市场活动,在线产品推荐,网络安全分析,机器日记监控等
易用性
用Java、Scala、Python、R和SQL快速编写应用程序。
Spark提供了80多个高级算子,可以轻松构建并行应用程序。您可以从Scala、Python、R和sqlshell交互使用它。
通用性
组合SQL、流和复杂分析。
Spark为一堆库提供了动力,包括SQL和DataFrames、用于机器学习的MLlib、GraphX和Spark Streaming。您可以在同一个应用程序中无缝地组合这些库。
运行环境
Spark运行在Hadoop、Apache Mesos、Kubernetes、standalone或cloud。它可以访问不同的数据源。
您可以在EC2、Hadoop YARN、Mesos或Kubernetes上使用Spark的Standalone集群模式运行Spark。访问HDFS、ALUXIO、Apache CasdRRA、Apache HBASE、Apache Hive和其他数百个数据源的数据。
版本
http://spark.apache.org/downloads.html,Spark3.0目前还是在试验阶段,还没有投入生产使用,
期待。。。