Apache Spark – Spark入门介绍

3. Apache Spark 历史

UC Berkeley R&D Lab 在2009年引入Spark,后来成为 AMPLab。 在2010年以 BSD license方式开源。在2013年Spark捐献给 Apache Software Foundation where it became top-level Apache project in 2014.

4. Why Spark?

在当前的集群的分布式计算平台中,

  • Hadoop MapReduce 只能执行batch processing
  • Apache Storm / S4 只能执行 stream processing
  • Apache Impala / Apache Tez 只能执行 interactive processing
  • Neo4j / Apache Giraph 只能执行 graph processing

因此,希望有巨大需求希望有一个强大的平台,既可以处理 real-time (streaming) 也可以处理 batch 。

Apache Spark 正是这样一个平台,提供 real-time stream processing,interactive processing, graph processing, in-memory processing 和batch processing能力。

5. Apache Spark 组件

Apache Spark 生态包含了很重要的组件,这些组件实现高性能和容易开发的能力。这些组件也解决了使用Hadoop Mapreduce的问题。

A Complete View of Apache Spark Ecosystem Components

5.1. Spark Core

是Spark应用的执行平台,所有的应用都会运行在这上面。

5.2. Spark SQL

提供了 SQL/HQL 能力,用户可以使用它在Spark上运行查询;提供结构化和非结构化的数据处理查询; 为Hive提供了计算引擎,可以达到100倍的查询性能提升。

5.3. Spark Streaming

Apache Spark Streaming 提供强大的对不同数据流做交互关联和数据分析能力。实时数据流转换为 micro-batches。

5.4. Spark MLlib

这是 当前最热的,效率和算法质量最佳的 machine learning库, 可以在内存中做数据处理,保证了算法的高性能。

5.5. Spark GraphX

Apache Spark GraphX 是一个构建在 Spark 上的弹性扩展的图形 graph 计算引擎

5.6. SparkR

R package 提供了一个运行在 Apache Spark 上的轻量级R 应用,科学家可以使用R shell 做大数据的分析和交互的运行Job。 SparkR 实现了R 强大的算法能力和Spark的强大运算能力。