Spark之一 Spark初识

什么是Spark?

       官网地址:https://spark.apache.org/
Spark之一 Spark初识
       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之一 Spark初识
           Spark的执行速度比MapReduce的快100倍,Apache Spark通过使用最先进的DAG调度器、查询优化器和物理执行引擎,为批处理和流数据实现了高性能。
  • 易用性
    Spark之一 Spark初识
           Spark提供了80多个高级操作符,可以轻松构建并行应用程序。您可以在Scala、Python、R和SQL shell中交互式地使用它。
  • 普遍性
    Spark之一 Spark初识
           结合SQL、流和复杂分析。
           Spark支持一系列库,包括SQL和DataFrames、用于机器学习的MLlib、GraphX和Spark流。您可以在同一个应用程序中无缝地组合这些库。
  • 兼容性
    Spark之一 Spark初识
           Spark可以在Hadoop、Apache Mesos、Kubernetes、独立或云上运行。它可以访问各种数据源。

Spark的架构

Spark之一 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的应用场景

       在实际应用中,目前大数据在互联网公司主要应用在广告、报表、推荐系统等业务上,在广告业务方面需要大数据做应用分析、效果分析、定向优化等,在推荐系统方面则需要大数据优化相关排名、个性化推荐以及热点点击分析等。