spark是什么

image.png
Spark

  • Spark是一种由Scala语言开发的快速、通用、可扩展的大数据分析引擎
  • SparkCore中提供了Spark最基础与最核心的功能
  • SparkSQL是Spark用来操作结构化数据的组件。通过SparkSQL,用户可以使用SQL 或者 ApacheHive 版本的 SQL 方言(HQL)来查询数据。
  • SparkStreaming是Spark平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的 API。
  • sparkMLib: MLlib 是 Spark 提供的一个机器学习算法库。MLlib 不仅提供了模型评估、数据导入等 额外的功能,还提供了一些更底层的机器学习原语。
  • spark GraphX: GraphX 是 Spark 面向图计算提供的框架与算法库。

    SparkorHadoop

    Hadoop 的 MR 框架和 Spark 框架都是数据处理框架,那么我们在使用时如何选择呢?

  • HadoopMapReduce 由于其设计初衷并不是为了满足循环迭代式数据流处理,因此在多 并行运行的数据可复用场景(如:机器学习、图挖掘算法、交互式数据挖掘算法)中存 在诸多计算效率等问题。所以 Spark 应运而生,Spark 就是在传统的 MapReduce 计算框 架的基础上,利用其计算过程的优化,从而大大加快了数据分析、挖掘的运行和读写速 度,并将计算单元缩小到更适合并行计算和重复使用的 RDD 计算模型。

  • Spark 是一个分布式数据快速分析项目。它的核心技术是弹性分布式数据集(Resilient DistributedDatasets),提供了比 MapReduce 丰富的模型,可以快速在内存中对数据集进行多次迭代,来支持复杂的数据挖掘算法和图形计算算法。Spark 和 Hadoop 的根本差异是多个作业之间的数据通信问题Spark 多个作业之间数据通信是基于内存,而 Hadoop 是基于磁盘。

  • SparkTask 的启动时间快。Spark 采用 fork 线程的方式,而 Hadoop 采用创建新的进程的方式

  • Spark 只有在 shuffle 的时候将数据写入磁盘,而 Hadoop 中多个 MR 作业之间的数据交互都要依赖于磁盘交互

  • Spark的缓存机制比HDFS的缓存机制高效