Spark入门(2)——生态系统

来源:互联网 发布:网络电视直播在线看 编辑:程序博客网 时间:2024/06/15 05:21

1.Spark简介

1.1 Spark概述

Apache Spark是一种快速通用集群计算系统。 它提供支持JavaScalaPythonR的高级API和支持一般执行图的优化引擎。 它还支持一系列更高级别的工具,包括用于SQL和SQL数据处理的Spark SQL用于机器学习的MLlib用于图形处理的GraphX用于实时流处理的Spark Streaming

1.2 Hadoop和Spark

Hadoop MapReduce相比,主要在下面几个方面做了改进:
(1)Spark基于内存的特性,使得其比Hadoop更快
(2)Spark丰富的API带来了更强大的易用性;
(3)Spark不单单支持传统批处理应用,更支持交互式查询流式计算机器学习图计算等各种应用,能满足各种不同应用场景下的需求。

2. Spark生态系统

2.1 Spark生态系统概述

Spark生态系统是伯克利APMLab实验室打造的,力图在算法(Algorithms)、机器(Machines)、(People)之间通过大规模集成来展现大数据应用的一个平台。伯克利AMPLab运用大数据、云计算、通信等各种资源以及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为有用的信息,以供人们更好的理解世界。该生态系统已经涉及到机器学习数据挖掘数据库信息检索自然语言处理语音识别等多个领域。

Spark生态系统Spark Core为核心,从HDFSAmazon S3HBase持久层读取数据,以MESS、YARN和自身携带的Standalone为资源管理器调度Job完成Spark应用程序的计算。 这些应用程序可以来自于不同的组件,如Spark Shell/Spark Submit的批处理Spark Streaming的实时流处理应用Spark SQL的即席查询BlinkDB的权衡查询MLlib的机器学习GraphX的图处理SparkR的数学计算等等。生态系统整体框架如下图所示:

这里写图片描述

2.2 Spark SQL

Spark SQL可以通过JDBC API将Spark数据集暴露出去,而且还可以用传统的BI和可视化工具在Spark数据上执行类似SQL的查询。用户还可以用Spark SQL对不同格式的数据(如JSON、数据库等)执行ETL,将其转化,然后暴露给特定的查询。

2.3 Spark MLlib

MLlib是一个可扩展的Spark机器学习库,由通用的学习算法工具组成,包括二元分类线性回归聚类协同过滤梯度下降等以及底层优化原语。

2.4 Spark Graphx

GraphX是用于图计算和并行图计算的Spark API。通过引入弹性分布式属性图(Resilient Distributed Property Graph),一种顶点和边都带有属性的有向多重图,扩展了Spark RDD。为了支持图计算,GraphX暴露了一个基础操作符集合(如subgraph,joinVertices和aggregateMessages)和一个经过优化的Pregel API变体。此外,GraphX还包括一个持续增长的用于简化图分析任务的图算法和构建器集合。

2.5 Spark Streaming

Spark Streaming基于微批量方式的计算和处理,可以用于处理实时的流数据。它使用DStream,简单来说就是一个弹性分布式数据集(RDD)系列,处理实时数据。

阅读全文
0 0
原创粉丝点击