大数据处理的关键架构层
文件系统层:在这一层里,分布式文件系统需具备存储管理、容错处理、高可扩展性、高可靠性和高可用性等特性。
数据存储层:由于目前采集到的数据,十之有七八为非结构化和半结构化数据,数据的表现形式各异,有文本的、图像的、音频的、视频的等,因此常见的数据存储也要对应有多种形式,有基于键值(Key-Value)的,有基于文档(Document),还有基于列(Column)和图表(Graph)的。如果采用单一的数据库引擎,“一刀切式”的满足所有类型的数据存储需求,通常会严重降低数据库管理的性能。因此,我们需要“兵来将挡,水来土掩”式的、多元的(Polyglot)数据库解决方案(这就好比,如果“兵来了”和“水来了”,都要“将”去挡,遇到“兵”时,“将”可以“酣畅淋漓”,而遇到“水”时,还用“将”去挡,那这个“将”估计就要“舍生取义”了。文献是一本有关NoSQL数据处理的图书)
资源管理层:这一层是为了提高资源的高利用率和吞吐量,以到达高效的资源管理与调度目的。
资源协调层:在本层的系统,需要完成对资源的状态、分布式协调、一致性和资源锁实施管理。
计算框架层:在本层的计算框架非常庞杂,有很多高度专用的框架包含其内,有流式的,交互式的,实时的,批处理和迭代图的(Batch and Iterative Graph,BSP)等。为这些计算框架提供支撑的是运行时引擎,如BDAS(Spark) 和 Flink等(注:这里的BDAS是指“Berkeley Data Analytics Stack”,即伯克利数据分析栈。为Spark核心作者Ion Stoica的讲座幻灯片文档)。
数据分析层:在这一层里,主要包括数据分析(消费)工具和一些数据处理函数库。这些工具和函数库,可提供描述性的、预测性的或统计性的数据分析功能及机器学习模块。
数据集成层:在这一层里,不仅包括管理数据分析工作流中用到的各种适用工具,除此之外,还包括对元数据(Metadata)管理的工具。
操作框架层:这一层提供可扩展的性能监测管理和基准测试框架。