一、Spark简介:

以下是百度百科对Spark的介绍:

Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

二、Spark生态圈介绍

Spark力图整合机器学习(MLib)、图算法(GraphX)、流式计算(Spark Streaming)和数据仓库(Spark SQL)等领域,通过计算引擎Spark,弹性分布式数据集(RDD),架构出一个新的大数据应用平台。

Spark生态圈以HDFS、S3、Techyon为底层存储引擎,以Yarn、Mesos和Standlone作为资源调度引擎;使用Spark,可以实现MapReduce应用;基于Spark,Spark SQL可以实现即席查询,Spark Streaming可以处理实时应用,MLib可以实现机器学习算法,GraphX可以实现图计算,SparkR可以实现复杂数学计算。

这一段摘选自:点这里

三、Spark教程

有很多想要学习Spark的小伙伴都是自学的,但是网上的教程太多太杂太零散,其实并不适合一个Spark小白的人学习,而我们实验楼刚好又有一些系列的教程,因此整理出来,希望对Spark学习者有所帮助~

我们就按照上图的生态圈,从左到右的顺序介绍课程吧;

1、Spark 讲堂之 SQL 入门

Spark SQL 是一个分布式查询引擎,在这个教程里你可以学习到 Spark SQL 的基础知识和常用 API 用法,了解常用的数学和统计函数。最后将通过一个分析股票价格与石油价格关系的实例进一步学习如何利用 Spark SQL 分析数据。

2、Spark 讲堂之 Streaming 入门

Spark Streaming 适用于实时处理流式数据。该教程带你学习 Spark Streaming 的工作机制,了解 Streaming 应用的基本结构,以及如何在 Streaming 应用中附加 SQL 查询。

附带一张Streaming图:

3、Spark 讲堂之 MLlib 入门

这个教程你可以了解到 Spark 的 MLlib 库相关知识,掌握 MLlib 的几个基本数据类型,并且可以动手练习如何通过机器学习中的一些算法来推荐电影。

4、Spark 讲堂之 GraphX 入门

GraphX是Spark用于解决图和并行图计算问题的新组件。GraphX通过RDD的扩展,在其中引入了一个新的图抽象,即顶点和边带有特性的有向多重图,提供了一些基本运算符和优化了的Pregel API,来支持图计算。

5、Spark 讲堂之 GraphX 图算法

GraphX包含了一些用于简化图分析任务的的图计算算法。你可以通过图操作符来直接调用其中的方法。这个教程中讲解这些算法的含义,以及如何实现它们。

6、Spark 讲堂之 SparkR 入门

SparkR是一个提供轻量级前端的R包,集成了Spark的分布式计算和存储等特性。这个教程将以较为轻松的方式带你学习如何在SparkR中创建和操作DataFrame,如何应用SQL查询和机器学习算法等。

7、Spark 讲堂之 DataFrame 入门

DataFrame让Spark具备了处理大规模结构化数据的能力,在比原有的RDD转化方式更加易用、计算性能更好。这个教程通过一个简单的数据集分析任务,讲解DataFrame的由来、构建方式以及一些常用操作。

8、Spark 讲堂之 DataFrame 详解

这个教程通过更加深入的讲解,使用真实的数据集,并结合实际问题分析过程作为引导,旨在让Spark学习者掌握DataFrame的高级操作技巧,如创建DataFrame的两种方式、UDF等。

9、Sqoop 数据迁移工具

Sqoop 是大数据环境中重要的是数据转换工具,这个教程对Sqoop 的安装配置进行了详细的讲解,并列举了Sqoop 在数据迁移过程中基本操作指令。

以上9个教程比较适合有一定的Spark基础的人学习。

10、Spark 大数据动手实验

这个教程是一个系统性的教程,总共15个小节,带你亲身体验Spark大数据分析的魅力,课程中可以实践:

Spark,Scala,Python,Spark Streaming,SparkSQL,MLlib,GraphX,IndexedRDD,SparkR,Tachyon,KeystoneML,BlinkDB等技术点,无疑是学习Spark最快的上手教程!

这个教程较为系统,非常适合零基础的人进行学习。

最后