Spark生态系统BDAS介绍

1.2 Spark生态系统BDAS

目前,Spark已经发展成为包含众多子项目的大数据计算平台。伯克利将Spark的整个生态系统称为伯克利数据分析栈(BDAS)。其核心框架是Spark,同时BDAS涵盖支持结构化数据SQL查询与分析的查询引擎Spark SQL和Shark,提供机器学习功能的系统MLbase及底层的分布式机器学习库MLlib、并行图计算框架GraphX、流计算框架Spark Streaming、采样近似计算查询引擎BlinkDB、内存分布式文件系统Tachyon、资源管理框架Mesos等子项目。这些子项目在Spark上层提供了更高层、更丰富的计算范式。

图1-1为BDAS的项目结构图。

[插图]

图1-1 伯克利数据分析栈(BDAS)项目结构图

下面对BDAS的各个子项目进行更详细的介绍。

(1)Spark

Spark是整个BDAS的核心组件,是一个大数据分布式编程框架,不仅实现了MapReduce的算子map函数和reduce函数及计算模型,还提供更为丰富的算子,如filter、join、groupByKey等。Spark将分布式数据抽象为弹性分布式数据集(RDD),实现了应用任务调度、RPC、序列化和压缩,并为运行在其上的上层组件提供API。其底层采用Scala这种函数式语言书写而成,并且所提供的API深度借鉴Scala函数式的编程思想,提供与Scala类似的编程接口。

图1-2为Spark的处理流程(主要对象为RDD)。

[插图]

图1-2 Spark的任务处理流程图

Spark将数据在分布式环境下分区,然后将作业转化为有向无环图(DAG),并分阶段进行DAG的调度和任务的分布式并行处理。

(2)Shark

Shark是构建在Spark和Hive基础之上的数据仓库。目前,Shark已经完成学术使命,终止开发,但其架构和原理仍具有借鉴意义。它提供了能够查询Hive中所存储数据的一套SQL接口,兼容现有的Hive QL语法。这样,熟悉Hive QL或者SQL的用户可以基于Shark进行快速的Ad-Hoc、Reporting等类型的SQL查询。Shark底层复用Hive的解析器、优化器以及元数据存储和序列化接口。Shark会将Hive QL编译转化为一组Spark任务,进行分布式运算。

(3)Spark SQL

Spark SQL提供在大数据上的SQL查询功能,类似于Shark在整个生态系统的角色,它们可以统称为SQL on Spark。之前,Shark的查询编译和优化器依赖于Hive,使得Shark不得不维护一套Hive分支,而Spark SQL使用Catalyst做查询解析和优化器,并在底层使用Spark作为执行引擎实现SQL的Operator。用户可以在Spark上直接书写SQL,相当于为Spark扩充了一套SQL算子,这无疑更加丰富了Spark的算子和功能,同时Spark SQL不断兼容不同的持久化存储(如HDFS、Hive等),为其发展奠定广阔的空间。

(4)Spark Streaming

Spark Streaming通过将流数据按指定时间片累积为RDD,然后将每个RDD进行批处理,进而实现大规模的流数据处理。其吞吐量能够超越现有主流流处理框架Storm,并提供丰富的API用于流数据计算。

(5)GraphX

GraphX基于BSP模型,在Spark之上封装类似Pregel的接口,进行大规模同步全局的图计算,尤其是当用户进行多轮迭代时,基于Spark内存计算的优势尤为明显。

(6)Tachyon

Tachyon是一个分布式内存文件系统,可以理解为内存中的HDFS。为了提供更高的性能,将数据存储剥离Java Heap。用户可以基于Tachyon实现RDD或者文件的跨应用共享,并提供高容错机制,保证数据的可靠性。

(7)Mesos

Mesos是一个资源管理框架[插图],提供类似于YARN的功能。用户可以在其中插件式地运行Spark、MapReduce、Tez等计算框架的任务。Mesos会对资源和任务进行隔离,并实现高效的资源任务调度。

(8)BlinkDB

BlinkDB是一个用于在海量数据上进行交互式SQL的近似查询引擎。它允许用户通过在查询准确性和查询响应时间之间做出权衡,完成近似查询。其数据的精度被控制在允许的误差范围内。为了达到这个目标,BlinkDB的核心思想是:通过一个自适应优化框架,随着时间的推移,从原始数据建立并维护一组多维样本;通过一个动态样本选择策略,选择一个适当大小的示例,然后基于查询的准确性和响应时间满足用户查询需求。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏挖掘大数据

大数据分析平台 Apache Spark详解

Apache Spark是一款快速、灵活且对开发者友好的工具,也是大型SQL、批处理、流处理和机器学习的领先平台。自从 Apache Spark 2009 年在...

53600
来自专栏人工智能LeadAI

想玩转工业界机器学习?先学Spark吧

为什么机器学习者需要学习spark? 关于大数据,有这样段话: “Big data is like teenage sex,everyone talks abo...

43990
来自专栏加米谷大数据

什么是 Apache Spark?大数据分析平台详解

自从 Apache Spark 2009 年在 U.C. Berkeley 的 AMPLab 默默诞生以来,它已经成为这个世界上最重要的分布式大数据框架之一。S...

15930
来自专栏美图数据技术团队

Hello Spark! | Spark,从入门到精通

Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架,是专为大规模数据处理而设计的快速通用的大数...

15000
来自专栏大数据

Hadoop和Spark的异同

解决问题的层面不一样 Hadoop实质上是解决大数据大到无法在一台计算机上进行存储、无法在要求的时间内进行处理的问题,是一个分布式数据基础设施。 HDFS,它将...

24080
来自专栏企鹅号快讯

什么是 Apache Spark?大数据分析平台详解

自从 Apache Spark 2009 年在 U.C. Berkeley 的 AMPLab 默默诞生以来,它已经成为这个世界上最重要的分布式大数据框架之一。S...

23360
来自专栏Albert陈凯

1.1.2 Spark生态

1.1.2 Spark生态 Spark大数据计算平台包含许多子模块,构成了整个Spark的生态系统,其中Spark为核心。 伯克利将整个Spark的生态系统称...

35650
来自专栏大数据学习笔记

Hadoop基础教程-第11章 Hive:SQL on Hadoop(11.1 Hive 介绍)(草稿)

第11章 Hive:SQL on Hadoop 11.1 Hive 介绍 11.1.1 为什么需要Hive? Hadoop的出现,正如当年Java语言的出现,得...

218100
来自专栏灯塔大数据

每周学点大数据 | No.70 适于迭代并行计算的平台——Spark初探

编者按:灯塔大数据将每周持续推出《从零开始学大数据算法》的连载,本书为哈尔滨工业大学著名教授王宏志老师的扛鼎力作,以对话的形式深入浅出的从何为大数据说到大数据算...

36460
来自专栏美图数据技术团队

Hello Spark! | Spark,从入门到精通

欢迎阅读美图数据技术团队的「Spark,从入门到精通」系列文章,本系列文章将由浅入深为大家介绍 Spark,从框架入门到底层架构的实现,相信总有一种姿势适合你,...

32820

扫码关注云+社区

领取腾讯云代金券