大数据架构关系分析及应用
2017-01-14叶惠仙贾如春
叶惠仙+贾如春
摘 要: 用哪种平台能更有效地从海量数据中找到有价值的信息并利用,是现代IT人不断追求的目标。简述了大数据的定义与特征,提出大数据的架构模型。从软件角度对大数据架构平台进行了分析与研究,分析了大数据架构模型各层次的意义与关系,描述了数据存储层及计算框架层的技术应用,并对大数据应用进行了展望。
关健词: 大数据; 大数据定义; 大数据架构; 计算框架
中图分类号:TP393 文献标志码:A 文章编号:1006-8228(2016)12-42-04
Abstract: Which platform can be used more effectively to find valuable information from the mass data and to make use of it, is the goal of modern IT people continue to pursue. This paper briefly introduces the definition and characteristics of big data, and puts forward the architecture model of big data. The big data architecture is analyzed and studied from the software point of view, the meaning and relationship of all layers of the big data architecture model are analyzed, the technologies used in the data storage layer and computing framework layer are described, and the application of big data is prospected.
Key words: big data; big data definition; big data architecture; computing framework
0 引言
当前,大数据存储信息全球所拥有的数据总量已经远远超过历史上的任何时期,且数据量的增加速度呈现倍增趋势。技术的发展往往不是那么一往无前,而是一直不停的迭代,然后论证,再互相影响。大数据技术也同样如此,从各种各样类型的数据中,做到快速获得有价值信息的能力,主要是大数据技术。
就现今数据分析方法而言,更多倾向于数据的关联性,精确性。数据种类繁多,在编码方式、存储格式和应用特征等多个方面也存在多层次、多方面的差异性,结构化、半结构化、非结构化数据并存;如何处理隐含于生产者和消费者之间产生的数据知识的价值信息延迟,一直是现代计算构架不断演进的主要动力。
1 大数据的定义
在大数据的快速发展中,各个学者试图对大数据理论、模型、分析、解决方案等提出自己的见解,并且定义也多种多样,但是被大多人所认可的是由道格拉斯·兰尼(Douglas Laney)在2001年提出的经典的3V定义:规模庞大的数据集合(volume),高速(velocity)地累积和变化,以及广泛(variety)的来源种类[1]。在2012年世界经济论坛上增加了第四个V:价值(value),将大数据作为一种新的经济资产。大数具有以下最为重要的五大特征。
⑴ 非竞争性(non-Rival):它可以被许多消费者同时使用和重复使用。这意味着向个人提供大数据的边际成本是零。
⑵ 持续增长(Rising):大数据还呈指数级增长(Rising)。最小的基本单位是Byte,1TB=1,024GB;1PB=1,024TB;1EB=1,024PB;1ZB=1,024EB;1YB=
1,024ZB。在现阶段的TB时代,1NB=2的60次方TB=1152921504606846976TB=115292150460684697个1TB硬盘。
⑶ 精炼(Refinable):这些海量数据很容易处理和精炼(Refinable),一家公司越使用大数据,它的质量和价值就越高。
⑷ 可再生(Renewable):大数据是可再生的(Renewable),像风能一样。
⑸ 可转变用途(Repurposable):大数据是可延展和转变用途的(Repurposable)。作为一种资源,大数据是非竞争性、不断增长、可精炼、可再生以及可转变用途的。大数据是应用领域一项伟大的资产,它是一种非常真实的现象,是一种对任何组织来说都非常珍贵的资源[2]。
2 大数据架构模型
近年来,世界产生的数据就超过了可用存储量。已经从思考“存储什么”转向了“清除什么”。当下智能手机由于存储了过多的图片而变得空间不足,这已经是一个全球性的问题了。经常是存储后再也没看过,或是偶尔查阅,这样就成就了一句话:存储中的一半数据是垃圾。只有那些知道怎样提出正确问题的人才知道哪些数据可能会对提问有用和相关,从而值得收集和处理,目的是开发它们的宝贵模式。我们需要更多更好的思路来筛选有价值的数据信息,大数据还会不断地增长[3]。
对此类技术的需求正在堆积,单位业务、创新和福利都取决与数据科学的价值量,现在是时候开发一套大数据系统的方法论了。图1为大数据架构关系模型图。
3 大数据架构模型分析
⑴ 文件系统层:在这一层,分布式文件系统需具备存储管理、容错处理、高可扩展性、高可靠性和高可用性等特性。由于文件系统层关注的焦点开始向“低延时处理”方向转移,所以传统基于磁盘存储的文件系统,也开始向基于内存计算的文件系统转变,这样可大大降低I/O操作和磁盘序列化带来的访问开销。Tachyon和Spark RDD(弹性分布式数据集(Resilient Distributed Datasets)就是朝这个方向演化的范例,是一种高度受限的共享内存模型。Tachyon是一个高容错的分布式内存文件系统,其设计的核心内涵是要满足当下“低延迟”的数据处理要求。tachyon是在内存中处理缓存文件,允许文件以访问内存的速度在集群框架中进行可靠的共享,类似于Spark。Tachyon的吞吐量比HDFS高100倍。Spark框架虽然也提供了强大的内存计算能力,但其没有提供内存文件的存储管理能力,而Tachyon则弥补了Spark的不足之处。如CEPH文件系统,Hadoop文件系统HDFS。Google文件系统GFS(Google File System)是一个可扩展的分布式文件系统,隐藏下层负载均衡,冗余复制等细节,对上层程序提供一个统一的文件系统API接口[4]。Google根据自己的需求对它进行了特别优化,包括超大文件的访问,读操作比例远超过写操作,PC机极易发生故障造成节点失效等。GFS的新颖之处在于它着眼于几个重要的目标,如性能、可伸缩性、可靠性和可用性,能利用所提出的方案,采用廉价的商用机器构建高效的分布式文件系统。
⑵ 数据存储层:由于目前采集到的数据,大部分为非结构化和半结构化数据,数据的表现形式各异,有文本的、图像的、音频的、视频的等,因此常见的数据存储也要对应有多种形式,有基于键值(Key-Value)的,有基于文档(Document)的,还有基于列(Column)和图表(Graph)的。如果采用单一数据库引擎来满足所有类型的数据存储需求,通常会严重降低数据库管理的性能。因此,需要多元的(Polyglot)数据库解决方案。非结构化(NOSQL)数据存储或可扩展的结构化数据(包括基于键值、基于文档的和面向列的)数据存储方案是支撑大数据应用的关键所在。RCFile文件存储格式,充分吸取面向列和面向行存储模式的优点,扬长避短,根据对一致性(consistency)要求的强弱不同,分布式数据存储策略可分为ACID和BASE两大阵营。ACID是指数据库事务具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。ACID中的一致性要求比较强,事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。而BASE对一致性要求较弱,它的三个特征分别是:基本可用(Basically Available),软状态/柔性事务(Soft-state,即状态可以有一段时间的不同步),最终一致性(Eventual consistency)[5]。BASE还进一步细分基于键值的,基于文档的和基于列和图形的,细分的依据取决于底层架构和所支持的数据结构。Dynamo是基于键值的高可用的分布式存储系统,该系统放弃了数据建模的能力,所有的数据对象采用最简单的Key-value模型存储,可简单地将Dynamo理解为一个巨大的Map。Dynamo是牺牲了部分一致性,来换取整个系统的高可用性。Cassandra是由Facebook工程师设计的一个离散的分布式结构化存储系统,采用的是面向多维的键值或面向列的数据存储格式。
⑶ 资源管理层:这一层是为了提高资源的高利用率和吞吐量,以到达高效的资源管理与调度目的。资源协调层需要完成对资源的状态、分布式协调、一致性和资源实施管理。第一代Hadoop的生态系统,其资源管理是以整体单一的调度器起家的,其代表作品为YARN。而当前的调度器则是朝着分层调度的方向演进,这种分层的调度方式,可以管理不同类型的计算工作负载,从而可获取更高的资源利用率和调度效率。这些计算框架和调度器之间是松散耦合的,调度器的主要功能就是基于一定的调度策略和调度配置,完成作业调度,以达到工作负载均衡,使有限的资源有较高的利用率。
⑷ 计算框架层:本层的计算框架非常庞杂,有很多高度专用的框架如:流式的,交互式的,实时的,批处理和迭代图的(Batch and Iterative Graph,BSP)等。为这些计算框架提供支撑的是运行时引擎,如BDAS指“Berkeley Data Analytics Stack”即伯克利数据分析栈,Spark和 Flink等。Spark和Flink都属于基础性的大数据处理引擎。Spark是一个基于内存计算的开源的集群计算系统,其目的在于让数据分析更加快速。适合各种迭代算法和交互式数据分析,能够提升大数据处理的实时性和准确性,现已逐渐获得很多企业的支持,如阿里巴巴、百度、网易、英特尔等公司均是其用户。Flink是一个非常类似于Spark的计算框架,但在迭代式数据处理上比Spark更给力。Pregel采用的是迭代式的计算模型,它被称之为Google后Hadoop时代的新“三驾马车”之一,另外两驾马车分别是:“交互式”大数据分析系统Dremel和网络搜索引擎Caffeine)。GraphX 是一个同时采用图并行计算和数据并行计算的框架[6]。Storm一个大数据实时处理系统,大大简化了面向庞大规模数据流的处理机制,从而在实时处理领域扮演着重要角色。BlinkDB是一个用于在海量数据上运行交互式 SQL查询的大规模并行查询引擎。BlinkDB允许用户通过适当降低数据精度,对数据进行先采样后计算,通过其独特的优化技术,实现了比Hive快百倍的交互式查询速度,而查询进度误差仅降低2~10%。BlinkDB采用的策略,与大数据布道师,维克托·迈尔-舍恩伯格在其著作《大数据时代》中提到的观点,“要全体,不要抽样”,恰恰相反,如果要实现在大体量数据上的“快”,就得想办法减少数据,而减少数据,势必要适度地降低数据分析精确性。
⑸ 数据分析层:在这一层里,主要包括数据分析(消费)工具和一些数据处理函数库。这些工具和函数库,可提供描述性的、预测性的或统计性的数据分析功能及机器学习模块。数据分析层中的工具,涵盖范围很广,从诸如SQL的声明式编程语言,到诸如Pig的过程化编程语言,均有涉及。数据分析层中的库也很丰富,可支持常见的数据挖掘和机器学习算法,这些类库可拿来即用,甚是方便。Hive是一个建立于 Hadoop上的数据仓库基础构架,用于进行数据的提取、转化和加载(即Extract-Transform-Load,ETL),是一种可以存储、查询和分析存储在Hadoop 中的大规模数据的机制[7]。
⑹ 数据集成层:在这一层里,不仅包括管理数据分析工作流中用到的各种适用工具,还包括对元数据(Metadata)管理的工具。数据集成框架提供了良好的机制,以协助高效地摄取和输出大数据系统之间的数据。从业务流程线到元数据框架,数据集成层皆有涵盖,从而提供全方位的数据在整个生命周期的管理和治理。ETL是数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)过程,是构建数据仓库的重要一环[8]。
⑺ 操作框架层:操作性框架用来构建一套衡量标准和测试基准,从而来评价各种计算框架的性能优劣。在这个操作性框架中,还需要包括性能优化工具,借助它来平衡工作负载。包含监测管理框架(Monitoring Frameworks),基准测试(Benchmarking)[9]。Apache HCatalog提供一个共享的模式和数据类型的机制,使用户不必关心数据怎么存储,并提供了可操作的跨数据处理工具。
4 大数据的发展应用
大数据这种近乎神奇的新资源,它理应改变和提高商业生命周期的各个方面。一个企业的决策分析,虽然是微小的数据,但却是非常重要的强大工具,如此多的数据可以非常快速而低成本地产生和处理。日益扩大的大数据海洋中有价值的“潜流”越来越多,但是对于没有计算能力的人来说是看不到的,因此更多更好的技能和技术极为有用。当IT部门要求更多的资金时,可能是有非常好的理由。然而,仅靠他们一己之力,再多的数字技术和解决方案也依然不够用。需要有能够自动从大数据中获取经济价值的方式,经济价值就是从大数据中找到的小但是重要的模式[10]。大数据可被用于以下方面。
⑴ 改善服务、产品或流程,帮助找到企业低效的地方。
⑵ 为用户或客户量身定制产品或服务,让公司更了解他们对客户需求。
⑶ 预测趋势发展方向,因为大数据可以表明历史是如何塑造未来的。
⑷ 激发可能的战略,比如新产品的设计和发行、时间、方式、目标人口等。
⑸ 规划并决定替代方案,大数据支持实证选择。
⑹ 教育行业中,让师者接近发现“每一个学生的真实”[10]。
⑺ 最后,对产品和服务进行创新或革新,帮助公司预测无法察觉的需要、愿望和需求。
5 结束语
本文以大数据架构为核心,分析了大数据解决方案中的特定的功能组件及关键技术。架构技术的演进是一个开放并不断改进的过程,模型中的操作框架、数据集成与分析、计算框架、数据存储等技术发展还面临着问题,减少批处理和交互式分析之间的平衡,实时和低延时处理的计算架构在快速的发展过程中,也不断推进这种计算架构的演进。大数据需要新处理模式才能具有更强的决策力、洞察力和过程优化能力。加强大数据技术研究,使不同行为特征的行业得以针对性塑造及创新发展,大数据高效有序的利用,有助于推进国民经济的繁荣发展。
参考文献(Reference):
[1] 张锋军.大数据技术研究综述[J].通信技术,2014.11:40-48
[2] 陆云帆,诸振家.大数据数据库的特点与处理技术分析[J].信
息通信,2014.7:114
[3] 马建光,姜巍.大数据的概念、特征及其应用[J].国防科技,
2013.2:10-17
[4] 李芬,朱志祥,刘盛辉.大数据发展现状及面临的问题[J].西安
邮电大学学报,2013.5:100-103
[5] 王珊,王会举,覃雄派,周烜.架构大数据:挑战、现状与展望[J].
计算机学报,2011.10:41-52
[6] 黄哲学,曹付元,李俊杰,陈小军.面向大数据的海云数据系统
关键技术研究[J].网络新媒体技术,2012.6:20-26
[7] 夏海元.面向Big Data的数据处理技术概述[J].数字技术与
应用,2012.3:179-180
[8] 杨京,王效岳,白如江,祝娜.大数据背景下数据科学分析工具
现状及发展趋势[J].情报理论与实践,2015.3:134-137,144
[9] 张延松,焦敏,王占伟,王珊,周烜.海量数据分析的
One-size-fits-all OLAP技术[J].计算机学报,2011.10:36-46
[10] 廖建新.大数据技术的应用现状与展望[J].电信科学,
2015.7:7-18