典型大数据处理系统及应用场景
2018-02-27党小争
党小争
摘要
大数据已经成为当下计算机研究的热点之一,本文主要总结了几种典型大数据类型的概念及特征,并选取了相应代表性的大数据处理系统,分析了它们的基本思想、原理和特点以及在实际领域中的典型应用。
【关键词】大数据 数据分析 知识计算 可视化
随着互联网应用的不断发展与积累,人们对数据概念的重新认识,与其相关的技术应用给网络技术带来了新的革命。大数据概念应运而生,并迅速成为新技术的引领者,为我们带来了前所未有的新成果。如今对大数据基本形成普遍认同的概念,既数据规模巨大,结构化松散,无法通过现有主流软件在合理的时间内进行撷取、管理、处理并整理成为有效应用的数据体系,需要经过新处理模式才能具有高决策力、强指导性、高洞察力的数据。大数据的主要特点有大量性、高速性、多样性、高价值密度等。
大数据的处理与系统应用技术,已经发展为一些成熟的模式,目前对大数据的处理形式主要有三类:对静态数据的批量处理、对在线网络数据的实时处理和对图数据的综合处理。其中,对在线网络数据的实时处理又包括对流式数据的处理和实时交互计算两种。本文将详细分析以上三类数据形式的定义和特征以及相关应用,并选取了一些代表性的处理系统分析其功能特点及技术应用。
1 静态数据特点与批量数据处理系统及应用
1.1 静态大数据
以静态形式存储,批量数据的规模从TB级到PB级别,很少对其移动与传输,存储时间久,更新周期慢。它们在长期的应用过程中产生并积累下来,精度高,蕴含很高的信息价值。但是信息密度低,结构极为松散,无法使用常规数据库软件进行管理,数据类型复杂,有价值的数据点混杂其中,可是又很难对其进行分类整理,且时间成本很高。
1.2 Google的GFS(Google File System)
GFS是一个大型的分布式文件系统,它结合了Chubby、MapReduce以及Bigtable等技术,为Google云计算提供海量的存储系统。GFS系统节点主要分为:Client(客户端)、Master(主服务器)和Chunk Server(数据块服务器)。Client以库文件的形式提供给应用程序作为接口,它不遵守POSIX规范,而是一种专用接口,应用程序可以调用库文件。Master作为系统的“中枢神经”,负责整个文件系统的管理和调配,在逻辑上只有一个主管,负责系统节点的管理。Chunk Server负责系统所有文件的存储,它的个数决定了GFS的规模。它的主要特点:
1.2.1 节点集中管理模式
文件系统中所有元数据,都被划分为若干个Chunk进行存储,而对于每个Chunk Server都有一个存储空间。当Client发起一次操作需求,都必须通过Master执行后,如果增加一个Chunk Server只需在注册到相应的Master即可,而Chunk Server之间没有任何信息交互,它们的关系是对等的、无中心的。
1.2.2 便捷的缓存机制
由于需要读取的数据量巨大,内存无法全部存储,GFS采用了便捷有效的缓存机制,在数据的必要性和可行性上取得了最大平衡,Client发出的所有操作,都需经过Master进行处理,Master会对存储在Chunk的元数据采用相应的压缩机制存储在内存中,降低在内存中的占用空间大小。为了降低频繁访问次数,Master直接在内存中操作,从而提高了内存的利用率和访问效率。
1.2.3 在用户状态下实现存取数据
GFS并不是通过内核实现,而是在用户状态下,直接利用POSIX编程接口存取数据。这样大大降低了难度,也提高了通用性。
1.2.4 通过专用接口对GFS文件系统访问
GFS的文件系统设计是面向Google应用的,所以采用了专用的文件系统接口,以库文件的形式提供,应用程序与库文件一起编译,而不需要重新编译,在代码中通过调用库文件的APE,完成对GFS文件系统的访问。
1.3 互联网中大数据的处理应用场景
1.3.1 社交软件
比如微信、Facebook等,在用户使用过程中会产生大量的数据,包括文本、声音、视频等信息,对这些信息进行批量处理,可以发现人们之间隐含的关系,通过推荐相关用户,扩大人们的交际圈,系统成为一个发现朋友的链接者,把用户的关系需求进一步优化,提高用户的交流体验。
1.3.2 电子商务
大型的电子商务网站拥有众多的用户,在使用过程中,会产生大量的数据,如点击量、评论、位置等,通过分析这些数据,可以给用户推荐偏好产品、好评产品、物流效率高的产品等信息,挖据出用户的独特需求。
1.3.3 搜索引擎
例如百度、Google等智能搜索引擎,会基于搜索大数据的分析,提供商家有偿广告投放,给用户给供有价值的结果,还可以根据用户搜索偏好,设置筛选条件,推荐用户潜藏的需求。
2 流式数据特点与代表处理系统及应用
2.1 流式(streaming)大数据
流式数据是一个无穷的数据序列,序列往往具有复杂的有序标签或者时序特性,序列中的每个元素来源各异,每个元素可以看成一个元祖,元素的特性类似于元祖的属性。流式数据在不同应用中体现出不同的特性,如元素特性数量、流速大小、数据格式等,而它们又含有共同的特征,可以用来设计流式数据的系统。
流式数据大多具有一定的时序性,它们是根据时间顺序产生的,但又不确定,这些数据结构也无固定规律,产生的时间周期不可预知,数量又很庞大,随着时间和环境的变化,数据的物理结构与逻辑结构不一致,这种系统具有很好的伸缩性,在动态变化的过程中,要有很强的计算能力和不确定流速的处理能力。其次,针对数据结构的半结构甚至无结构,要在大量的数据中分辨出错误信息和垃圾信息,因此要求系统具有很好的容错力和异构数据的处理能力,能够对动态数据进行数据清理和格式处理等。最后,流式数据是动态积累的,它不同于传统数据处理模式,先保存再处理,所以需要系统能够实时处理,能够根据局部进行计算,保證数据的动态属性。
2.2 Google的Dremel
Dremel是一種交互式的数据分析系统,它可以处理PB级的数据量,能够组建成规模上千的集群。MapReduce处理一个数据只需分钟级的时间周期,Dremel作为它的补充,已经将处理时间缩短到秒级。Dremel作为Google BigQuery的report引擎,以高效处理性能,为系统提供了强大的保障。
Dremel能够快捷地分析浏览流式数据,建立分析模式。它的主要特点:
2.2.1 大规模数据处理能力
对一个 PB级的数据级,能将处理速度缩短到秒级,这需要大量的并发。如此大规模的数据集群,需要足够的容错能力,来保证处理速度不受影响。
2.2.2 它是对MR交互查询的有力补充
当MapReduce与数据运行在一起,需要GFS这样的文件系统作为存储,它在设计时不是为了取代MapReduce,而使为了在使用时,用来处理MapReduce的结果集或者建立分析原型并进行快速分析。
2.2.3 Dremel使用嵌套的数据模型
对于非关系型的数据流,需要建立一个灵活的数据模型,而传统的关系模型不可避免的使用了大量的连接操作,而Dremel支持一个嵌套的数据模型,大大提高了数据操作效率。
2.2.4 Dremel结合了网络搜索和数据管理系统技术
它借鉴了Web搜索中的查询技术,将一个庞大复杂的查询操作,分割成若干个小而简单的查询,并能以并发的形式在节点运行。同时结合了DBMS的技术,为应用提供了一个SQL类接口。
2.3 流式大数据处理的应用场景
2.3.1 网络数据的采集应用
采集数据可以是网络日志数据、传感器数据、Web数据采集等,对这些海量的数据进行实时分析处理,并且挖据出有价值的信息推荐给用户。
2.3.2 金融业数据分析
对于银行金融等领域,每时每刻都会产生大量的信息,而且瞬息万变,如何在如此庞大规模的数据流中,获取有效信息,需要进行数据挖据。
2.3.3 人机交互应用
传统的数据处理模式,是通过关系型数据管理系统,主要处理两方面应用,即联机事物处理与联机分析处理。流式交互处理则是根据实时数据流,代表性的有数据钻取,对数据进行切片和多维度聚合,从而通过多维度分析技术实现数据钻取。
3 图式大数据与代表处理系统及应用
3.1 图式数据概念及特点
图式数据是一种通过点面结合的数据类型,能很好表现事物之间的关系,如何分析这些数据的强关联性,需要对图数据进行一系列操作,包括图存储、图查询、图最短路径查询、关键字查询、图模式挖据。随着图节点数据的增多,图数据的复杂性也极大增加,这对系统处理能力提出更好的要求。图数据的主要特点有:
3.1.1 节点之间的关联性
图中边的数量是节点数量的指数倍,节点与边的关系同等重要,图结构的差异也主要是由于对边做了限制,顶点和边的实例化构成不同。
3.1.2 图数据的种类繁多
因为来自不同流域的数据,它们对语义分析不同,需要的处理方式也不同,因此需要系统有很强的通融性,能满足不同领域的处理需求。
3.1.3 图数据处理具有很强的耦合性
如果图的规模巨大,大量的图边和顶点不可能在一台甚至多台设备上,需要将图分解成不同的子图,而这些子图之间有很强的关联性,所以在计算的时候需要系统能对其进行合理的分割以及选用合适计算模型。
3.2 GraphLab系统的主要思想及特点
GraphLab是一个基于图像处理模型的开源图计算框架,该框架是面向机器学习的流处理并行计算框架,可以运行多处理的系统或集群等。它可以高效地执行与机器学习相关的具有稀疏的计算依赖特性的迭代算法,能够保证计算过程中数据的高度一致性和高效的并行计算性能。GraphLab是将数据抽象成Graph结构,将算法的执行过程抽象为Gather、Apply、Scatter三个步骤,其并行的核心思想是对图的顶点的划分。它的主要特点:
3.2.1 统一的API接口
对于多核处理器和分布式环境,采用统一的API接口,一次编写程序即可高效地运行在共享内存环境或者分布式集群上。
3.2.2 高性能
优化C++执行引擎,在大量多线程操作和同步I/O操作之间进行了很好的平衡。
3.2.3 可伸缩性强
GraphLab能够智能地选择存储和计算的节点。
3.2.4 功能强大的机器学习类工具集
GraphLab在自身提供的API接口之上实现了大量的开箱即用的工具集。
3.3 图式大数据处理的应用场景
3.3.1 互联网领域应用
在大型的社交网络中,建立了大量的在线社会关系图,对此进行分析处理,能获取潜在的人与人之间的关联,进行有效的连接,构建发达的人际关系网络,研究社会中人群间关系,发现社交网络中的热点问题等等。
3.3.2 在交通领域中的应用
通过动态的网络交通信息,寻找最短路径,为用户提供最优的导航服务等。也由于图的复杂性和动态变化,给系统应用提出更高的挑战,如何最大化开发图数据的信息价值,应用到广泛的领域,是未来图数据技术研究的重要课题。
4 小结
对于大数据的研究己然成为一大热点,随着更多的新技术涌现,新的平台层出不穷。可以预见未来大数据的发展,必将在处理数据的规模上,数据的复杂性上,处理的效率上取得更大的突破。最终从传统的数据处理模式中更加脱离出来,形成专用的大数据处理系统。
参考文献
[1]ChakravarthyS,Jiang Q.Stream dataprocessing:A quality of service perspective:Modeling,scheduling,load shedding,and complex eventprocessing,Springer-Verlag,2009.
[2]程学旗,靳小龙,王元卓等.大数据系统和分析技术综述[J].软件学报,2014,25(09):1889-1908.
[3]王元卓,靳小龙,程学旗.网络大数据:现状与展望[J].计算机学报,2013,36(06):1125-1138.
[4]孙大为,张广艳,郑纬民.大数据流式计算:关键技术及系统实例[J].软件学报,2014,25(04):839-862.