温玉杰
[摘 要]根据大数据处理形式不同,将大数据计算分为批量处理计算和流式处理计算,对大数据中的批量处理计算和流式处理计算进行了分析,介绍了不用的大数据应用场景、数据特征和代表性处理系统,分析批量计算中的关键技术(系统架构、分布式文件系统、分布式数据处理系统)和流式计算关键技术(系统架构、数据传输、编程接口)。
[关键词]大数据分析 批量处理计算 流式处理计算
中图分类号:X734.2 文献标识码:A 文章编号:1009-914X(2016)10-0206-01
1 引言
随着互联网技术的不断发展,物联网技术、移动互联技术、社交媒体等技术及其应用在是越来越多,全球的数据急剧膨胀,人类已经步入了大数据的时代。大数据中包含着大量的隐含信息,需要从这些隐含的信息中提取有价值的大知识,这些大的知识将在更高的层面上、更广阔的视角、更大范围内对用户提供洞察力、决策力,为人类以及社会创造更大的利益以及价值。目前主流的大数据库计算模式分为两种,分别为批量式计算和流式计算两种模式。
在批量计算模式中,首先是需要对海量数据进行存储,然后对这些存储的静态数据进行集中起来进行计算,目前的Hadoop就是一种非常典型的批量计算架构;在流式计算模式中,无法确定数据的到来时刻以及数据的次序,也不用将数据全部进行存储起来进行计算。而是当这些流动的数据到来之后直接在内存中进行实时性的处理,典型的Twitter、Storm、Yahoo的S4就是这种流式的数据计算模式。
2 应用场景及数据特征
2.1 批量处理系统
对于批量处理系统来说,这类系统比较适合对于静态数据进行数据挖掘,从海量信息中获取具体的含义,得到很明智的决策,最终为领导提供辅助决策制定相应的应对措施来实现业务目标。大数据中的批量处理系统适合先进行存储然后进行计算,对于数据处理的实时性要求不是很高,但是对于数据的准确性和全面性要求更高。
2.1.1 数据特征
对于批量数据来说,通常具备三个典型的特征,(1)数据量比较大,数据量从TB级别到PB级别,数据主要是以静态的形式存储在磁盘上,存储的时间比较大,一般不进行数据的更新数据,海量数据可以重复进行使用,这种数据不容易移动以及备份处理;(2)数据的精度比较高,存储的这些数据一般是属于企业中的一部分,是长时间积累下来的;(3)数据价值密度相对来说比较低。往往有价值的信息比较少,因此需要采用合理的分析算法对这些批量数据进行信息抽取,同时处理批量数据比较耗时,一般不提供交互功能,当提取结果与预期差别很大时,会浪费很多时间。因此,批量处理系统比较适合相对比较成熟的作业。
2.1.2 代表性处理系统
对于批处理系统来说,比较典型的代表是由Google公司开发的文件系统GFS(google File System)和研发的MapReduce编程模型。虽然Google公司没有对这两项技术进行源码的公开,但是基于发表的两篇文章,Nutch子项目中的Hadoop实现了开源的两个产品:HDFS和MapReduce。Hadoop成为批量处理架构中非常典型的一种架构模式,HDFS负责对静态的数据进行存储,通过MapReduce对这些静态数据进行计算逻辑的分配。Hadoop成为很多IT公司的大数据主流架构,基于HDFS和MapReduce建立了很多项目。
MapReduce编程模型收到很多主流IT的欢迎,主要有几个方面的原因:(1)MapReduce是一种没有共享的大规模集群系统,这种集群系统具有很好的性价比和伸缩性;(2)MapReduce模型比较简单,容易理解,便于使用。能够不仅仅处理大规模的数据,而且能够对很多细节进行隐藏(包括自动并行化、负载均衡、灾备管理等),能够很大程度上降低程序员的工作量。
2.2 流式处理系统
2.2.1 数据特征
一般情况下,对于流式数据来说,是一个无穷的数据序列信息,对于流式数据中的每个序列来说数据的来源是不同的,数据可能是结构化或非结构化,这些序列往往包含时间特征,或者有其他能够表示有序的标签信息。从数据库的角度来说,流式数据中的每个元素都可以看成是一个元祖。流式数据在不同的场景中能够表现出不同的特征信息,比如表现流速的大小、元素特征的数量、数据格式不同等。
2.2.2 代表性处理系统
流式计算处理系统目前得到广泛的应用,包括Twitter的Storm,Facebook的Scribe,Linkedin的Samza等。本节主要是对Twitter的Storm进行详细的介绍。
Storm的主要特点是一种基于分布式的、可靠、容错性好的流式处理系统,被分配的流式处理作业能够分发到不同的组件上,被分配的每个组件负责一项单一的、特定的处理任务。Storm集群中输入流由Spout来进行负责,Storm将流式数据分发给Blot的组件,Blot组件对其进行处理。Storm可以进行实时的数据处理以及对数据库进行更新,能够被用于进行持续的计算,对连续的数据流进行查询处理,在计算的过程中结果是以流的形式输出给用户。还可以用于进行分布式的处理RPC。
3 大数据关键技术
3.1 大数据批量计算关键技术
在大数据批量计算中,系统架构、分布式文件系统、分布式数据处理系统等关键技术成为制约其发展的关键技术。
(1)系统架构
在进行大数据处理的过程中,需要的关键技术主要是针对海量的数据进行存储以及分析计算,因此选择合理的架构对其进行批量处理是其中的重点。
(2)分布式文件系统
在大数据应用中,文件系统是其中非常重要的一个部分。对于海量的数据需要采取分布式存储的方式存储到磁盘上,方便后期的计算。
(3)分布式数据处理系统
对于分布到磁盘上的海量信息,如何选取合理的数据处理系统对其进行处理分析是其中的一个非常重要的关键点。
3.2 大数据流式计算关键技术
对于流式计算中,理想中的大数据流式计算应该具有比较低的延迟、高的吞吐量、保持持续运行、可以伸缩等特征,这些离不开系统的架构、海量数据的传输、编程的接口、高新技术等关键技术的合理设计与规划。
(1)系统架构设计
流式计算中的架构指不同的各个子系统之间的一种重新组合的方式,对于流式处理计算中需要选择特定的框架进行流式计算。目前主流的流式计算系统中采用的架构分为无中心节点的对称系统架构以及具备中心节点的主从式结构。
(2)数据传输
数据传输主要是完成从有向任务图到物理计算节点之间的部署,部署各个节点之间的数据传输方式。在流式计算系统中,为了能够具备高的吞吐量、比较低的延迟,需要不断的优化从有向任务图到物理计算节点之间的部署及其映射方式。目前主流的数据传输方式分为主动推送方式和被动拉取的方式。
(3)编程接口
在流式计算中,为了方便从有向任务图到物理计算节点之间的部署,需要进行编程实现任务图中各个节点的相应处理功能。需要编制大量的流式数据计算系来提供应用编程的接口,方便的接口能够方便用户实现内部的业务逻辑及处理,减少用户的编程的工作量。
4 总结与展望
互联网技术、云计算等高新技术的快速发展,多样化的应用不断的增加,数据在各行各业中都成为非常重要的一个组成部分,如何在海量的信息中获取有价值的信息是大数据需要完成的工作。本文根据大数据对数据处理的形式不同,介绍了批量处理系统和流式处理系统,并对大数据中的关键技术进行了介绍。
参考文献
[1] 刘智慧,张泉灵.大数据技术研究综述[J].浙江大学学报:工学版,2014(06):957-972.
[2] 黄欣荣.从复杂性科学到大数据技术[J].长沙理工大学学报:社会科学版,2014,29(2):5-9.
[3] 李纪舟,苏晓娟,叶蕾.大数据技术及其国外发展情况[J].电信技术研究,2013(2):60-64.
中国科技博览2016年10期