前沿追踪:伯克利数据分析堆栈

伯克利数据分析堆栈(BDAS, the Berkeley Data Analytics Stack)是由AMPLab实验室提供的,以Spark Core计算引擎为核心的,一套完整应对各种大数据处理场的Spark生态系统。伯克利数据分析堆栈也会随着开源软件的发展不断向前演变。 AMPLab实验室作为推动Spark生态向前发展的主要力量,其提供的伯克利数据分析堆栈非常值得技术人员持续关注。【草稿版。。。】

Spark历史回顾

2009年Spark作为一个研究项目在加州大学伯克利分校(UC Berkeley)的RAD实验室(AMPlab的前身)诞生。当时Spark的设计是为了弥补Hadoop MR在迭代计算、交互计算、计算时间方面效率底下的缺陷,因此Spark天生具备以下特性

  • 可交互式查询
  • 迭代计算
  • 内存式存储
  • 高效容错

2010年3月Spark项目开源。

2011年,AMPLab开始基于Spark开发更高层的组件,比如Spark Streaming。有AMP开发的这些基于Spark Core组件和其他组件一起被称为伯克利数据分析堆栈。分析栈随着技术的发展不断扩张和演变。

2013年6月,Spark项目正式交给Apache基金会,目前已成为顶级项目。从此,Spark飞速发张。

伯克利数据分析堆栈

BDAS的所有组件如下图(2016年版,如官网有更新欢迎留言告诉我)。其中,蓝色和绿色的模块所代表的组件完全开源可用,点击链接可进入对应项目的主页下载或了解更多。

BDAS主要包括三层:存储层、资源管理层和数据处理层。AMP自己的项目中除了处理层的Spark,还有管理层的Mesos,存储层的Tachyon;考虑到Hadoop生态圈技术在某些情况下数据处理的会更好,作为Spark的互补技术,Spark对Hadoop支持且能够和Hadoop整合在一起。因此,BDAS表示的Spark生态系统还包括Hadoop的技术。下面详谈各个模块的细节。

存储层

Tachyon是一个基于内存的文件系统,在一个集群中有多个框架,这些框架的数据可能需要共享,如果把数据直接放在内存中共享时更快。Tachyon是华人弄得项目已经开源。

资源管理层

Mesos是资源管理层的,使多框架可以分享同一个集群的资源。这里你只要有一个集群就可以了,而不需要有很多个,能够在多个框架上用。好处是什么?资源节省效率更高,并且更容易共享数据。

处理层

Spark core是执行引擎,它有两个特点,它可以容错,内存存储效率也很高。在时效节点上它可以对数据进行重构,并且它有更强大的模型,也更快,比Hadoop MapReduce快上100倍。对于同样一个应用来说它写的代码量要比Hadoop MapReduce少2到5倍,并且它也支持互动计算。也就是说它对内存的利用效率更高,能更快得到响应,并且也可以通过内存共享数据。在Spark Core上面有很多个框架:

Spark Streaming

用Spark的功能做快速的计算。流式计算更适用于实时计算的场景。我们可以用它处理不同节点的计算,所有的这些特性实际上在其他类似Spark Streaming技术上不能实现的。这里我们支持批量流的计算。

MLlib

用于机器学习的高质量库

Graphx

这个Graphx可以整合数据和图并行计算,就是对数据的平行计算以及表格的平行计算进行整合,提供了非常高的抽象等级。同时,它还借鉴了Apache Spark的纠错功能。

BlinkDB

使用抽样方法在性能准确性之间做平衡,服务器响应速度非常快。用Sql查询,BlinkDB可以在一定的响应时间内进行查询,目前仍在开发过程中,将来是Spark的一个非常重要的部分。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器