前面我们说到0基础学习大数据开发需要的Java基础、大数据基础和大数据技术学习的重点之一Hadoop,今天加米谷大数据继续来介绍大数据学习的重点之二:Spark。

spark是大数据技术与应用吗?大数据开发零基础需要学习什么内容(1)

四、Spark生态体系

(1)Spark简介

Spark 是专为大规模数据处理而设计的快速通用的计算引擎。用来构建大型的、低延迟的数据分析应用程序。可用它来完成各种各样的运算,包括 SQL 查询、文本处理、机器学习等。Spark 是由加州大学伯克利分校AMP实验室 开发的通用内存并行计算框架,是一种与 Hadoop 相似的开源集群计算环境,它扩展了MapReduce计算模型,高效的支撑更多计算模式,包括交互式查询和流处理。

Spark的特性

高效(运行速度快)、易用(支持Java、Python和scala的API,支持多种高级算法)、通用(提供了大量的库,提供了统一的解决方案)、兼容(方便与其他的开源产品进行融合)。

(2)名字由来

Spark的故事始于2009年,当时加州大学伯克利分校中一个名为的Matei Zaharia班级项目,项目名为Mesos。 当时的想法是构建一个可以支持各种集群系统的集群管理框架,类似 Yarn 。 在构建了 Mesos 后,开发人员需要一个基于 Mesos 架构的实际产品。这就是Spark的诞生方式。

Spark有火花,鼓舞的意思,称之为Spark的原因是,他们希望这款产品能够激发基于Mesos的几款创新产品。

spark是大数据技术与应用吗?大数据开发零基础需要学习什么内容(2)

(3)基本组成:

1)Spark Core:Spark的核心功能实现,将分布式数据抽象为弹性分布式数据集(RDD),实现了应用任务调度、RPC、序列化和压缩,并为运行在其上的上层组件提供API。相当于MapReduce。

RDD(Resilient Distributed Dataset),弹性分布式数据集 ,是分布式内存的一个抽象概念。

2)Spark SQL:是Spark处理数据的一个模块,提供了非常强大的API。跟基本的Spark RDD的API不同,Spark SQL中提供的接口将会提供给Spark更多关于结构化数据和计算的信息。在内部,SparkSQL使用额外的结构信息来执行额外的优化,在外部,使用SQL和DataSet的API与之交互。

3)Spark Streaming:是Spark提供的实时数据进行流式计算的组件,能够和Spark的其他模块无缝集成。类似Storm,核心是采用微批次架构,和Storm采用的条处理不同。

4)Spark Mllib:提供常用机器学习算法的实现库,同时包括相关的测试和数据生成器。Spark的设计初衷就是为了支持一些迭代的Job, 这正好符合很多机器学习算法的特点。

5)Spark GraphX:提供一个分布式图计算框架,能高效进行图计算。图形数据库:是NoSQL数据库的一种类型,它应用图形理论存储实体之间的关系信息,有自己的查询语言,数据库的接口比较弱,只支持简单的查询。

(4)相关:

6)Scala编程语言:是一门多范式的编程语言,一种类似Java的编程语言。2004年正式问世,全称叫scalable,可伸缩的意思。Scala是面向对象语言,并且具备函数式编程特性,构建在jvm之上的,因此可以和Java进行无缝互操作,简言之就是Scala可以使用Java的类库,java可以使用scala程序。

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

7)Kafka:是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。

spark是大数据技术与应用吗?大数据开发零基础需要学习什么内容(3)

(5)加米谷大数据Spark学习哪些内容?

1)Scala大数据黄金语言(Scala语法剖析与应用实践)

2)Kafka分布式总线系统 (Kafka原理剖析与实践)

3)Spark Core大数据计算基石(SparkCore核心原理与实践)

4)Spark SQL数据挖掘利器 (SparkSQL核心原理与实践)

5)Spark Streaming 流式计算平台 (SparkStreaming核心原理与实践)

6)Spark Mllib机器学习平台(SparkMllib算法模型原理与实践)

7)Spark GraphX图计算平台(SparkGraphX核心原理与实践)

(6)如何学习Spark?

在入门spark之前,首先对spark有些基本的了解。比如spark适用场景、概念等。

1)熟练掌握Scala语言

2)Spark下载及环境搭建

3)学习Spark平台提供给开发者API

4)深入Spark内核(通过Spark框架的源码研读来深入Spark内核部分)

5)掌握基于Spark上的核心框架的使用

6)相关的Spark项目实战。加米谷大数据培训机构。

,