Spark之一 Spark初识
什么是Spark?
官网地址:https://spark.apache.org/
Apache Spark™是用于大规模数据处理的统一分析引擎。
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
为什么要使用Spark?
既然已经有了MapReduce的计算框架,为什么还需要Spark呢?Spark相比较MapReduce有什么特别之处吗?
接下来我们看下Spark的特性:
-
高效性
Spark的执行速度比MapReduce的快100倍,Apache Spark通过使用最先进的DAG调度器、查询优化器和物理执行引擎,为批处理和流数据实现了高性能。 -
易用性
Spark提供了80多个高级操作符,可以轻松构建并行应用程序。您可以在Scala、Python、R和SQL shell中交互式地使用它。 -
普遍性
结合SQL、流和复杂分析。
Spark支持一系列库,包括SQL和DataFrames、用于机器学习的MLlib、GraphX和Spark流。您可以在同一个应用程序中无缝地组合这些库。 -
兼容性
Spark可以在Hadoop、Apache Mesos、Kubernetes、独立或云上运行。它可以访问各种数据源。
Spark的架构
-
Spark Core:内核,是Spark中最重要的内容,相当于MapReduce跑;
Spark Core和MapReduce都是进行离线计算
Spark Core的核心:RDD(弹性分布式数据集),由分区组成 -
Spark SQL:相当于Hive、Pig
支持SQL和DSL语句 -----> Spark任务(RDD) -----> 运行 -
Spark Streaming:相当于Storm
本质:把连续的数据 -----> 不连续的数据DStream(离散流):本质就是RDD -
MLlib:提供常用机器学习算法的实现库。
-
GraphX:提供一个分布式图计算框架,能高效进行图计算。
Spark的应用场景
在实际应用中,目前大数据在互联网公司主要应用在广告、报表、推荐系统等业务上,在广告业务方面需要大数据做应用分析、效果分析、定向优化等,在推荐系统方面则需要大数据优化相关排名、个性化推荐以及热点点击分析等。