Spark数据分析导论

1 Spark是什么

Spark是一个用来实现快速而通用的集群计算的平台。Spark扩展了广泛使用的MapReduce计算模型,并且能够在内存中进行计算,因而速度更快。Spark所提供的接口非常丰富提供基于python, java, scala和SQL的简单易用的API以及内建的丰富的程序库。
Spark的核心是一个对由很多计算任务组成的,运行在多个工作机器或者是一个计算集群上的应用进行调度,分发以及监控的计算引擎。

2 核心组件

Spark的各个组件如下图所示:
在这里插入图片描述

2.1 Spark Core

实现基本功能,包含任务调度,内存管理,错误恢复,与存储系统交互等模块。Spark Core中还包含了对弹性分布式数据集 ( resilient distributed dataset, 简称RDD) 的API定义。RDD表示分布在多个计算节点上可以并行操作的元素集合,是Spark主要的编程抽象,Spark Core 提供了创建和操作这些集合的多个API。

2.2 Spark SQL

Spark SQL是Spark用来操作结构化数据的程序包。通过Spark SQL,可以使用SQL或者Apache Hive版本的SQL方言 (HQL) 来查询数据。Spark SQL还支持开发者将SQL和传统的RDD编程的数据操作方式相结合进行数据分析。

2.3 Spark Streaming

Spark Streaming是Spark提供的对实时数据进行流式计算的组件。Spark Streaming 提供了用来操作数据流的API,并且与Spark Core中的RDD API高度对应。因此,程序员编写应用时,不论是操作内存或是硬盘中的数据,还是操作实时流数据,都更能应对自如。

2.4 MLib

MLib是Spark中包含的一个提供常见的机器学习功能的程序库。MLlib提供了很多种机器学习算法,包括分类,回归,聚类,协同过滤等。还提供了模型评估,数据导入等额外的支持功能。

2.5 GraphX

GraphX是用来操作图 (比如社交网络的朋友关系图)的程序库,可以进行并行的图计算。GraphX也扩展了Spark的RDD API,能用来创建一个顶点和边包含任意属性的有向图。支持对图的各种操作(图的分割和操作所有的顶点)以及常用图算法(比如PageRank等)。

2.6 集群管理器

底层而言,Spark设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。Spark支持在各种集群管理器上运行,包括Hadoop YARN、Apache Mesos,以及Spark自带的一个简易调度器,叫做独立调度器。

3 Spark简史

Spark是由一个强大而活跃的开源社区开发和维护的,社区中的开发者们来自许许多多不同的机构。2009年,Spark项目正式诞生,其后不久,相比于MapReduce, Spark在某些任务上已经获得几十倍的性能提升。Saprk最早在2010年3月开源,并且在2013年6月交给了Apache基金会,现在已经成了Apache开源基金会的顶级项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值