Spark数据分析导论

1,spark是什么?

spark是一个用来实现快速而通用的集群计算的平台。

spark的速度很快,支持交互式查询和流处理等多种计算模式。spark的接口非常丰富,提供了基于python、java、Scala和SQL的api。

2,一个大一统的软件栈

spark项目包括多个紧密集成的组件。spark的核心是一个计算引擎,这个计算引擎可以对应用进行调度、分发以及监控,而这个应用可以是由很多计算任务组成的、运行在多个工作机器或者是一个计算集群上的应用。

Spark数据分析导论

3,各个组件的介绍

spark core

spark core实现了spark的基本功能,包括任务调度、内存管理、错误恢复、与存储系统交互等模块。spark core 还包含了对RDD的api定义。RDD,resilient distributed dataset,弹性分布式数据集,表示分布在多个计算节点上可以并行操作的元素集合,是spark主要的编程抽象。

spark SQL

可以通过spark SQL 和HQL来查询数据。

spark streaming

spark streaming是spark提供的对实时数据进行流式计算的组件。比如生产环境中的网页服务器日志,或是网络服务器中用户提交的状态更新组成的消息队列,对视数据流。spark streaming提供了用来操作数据流的api。

MLlib

MLlib是机器学习ML功能相关的程序库,提供了很多机器学习算法,包括分类、聚类、回归、协同过滤等。

GraphX

GraphX是用来操作图(比如社交网络的朋友关系图)的程序库,可以进行并行的图计算。

4,集群管理器

spark支持在Hadoop Yarn,Apache Mesos集群管理器上运行,此外,spark还自带了一个简易的集群管理器,叫做独立调度器。