分布式数据处理,就是利用分布式计算技术对数据进行处理。随着数据量的急剧膨胀,互联网公司所面对的数据量已经达到了
PB级别,传统集中式数据处理已经渐渐无法适应市场的需求,同时,个人计算机的性能得到了极大的提高,普及率也在飞速上升,这使得将处理能力分布到网络上的所有个人计算机上的设想成为可能,于是提出了
分布式计算的概念。
分布式系统
对于用户来讲,分布式系统与其他应用系统没有区别,都是一个独立的系统,但从底层物理设备和结构体系来看,分布式系统是一个庞大、复杂的体系,由若干个独立的计算机组合而成。从硬件角度来看,分布式系统的机器是独立的,各不同的计算机可以分布在世界的各个角落;从软件角度来看,分布式系统与用户的接口是单一的,用户无法直接感受到操作系统的分散。分布式系统的内部结构、通信方式和功能实现对用户是透明的,这是分布是系统的最大特点。此外,虽然分布式系统由若干个独立的计算机组合而成,但是当解决某一个具体的问题时,各部分能够实现高效、统一的任务指令,随时随地都能与用户进行交互,既提高了系统性能,又提升了用户体验。
可访问性、透明性、开放性和可扩展性是分布式系统的四个主要特性。
分布式计算
定义
分布式计算是指,将一个庞大的计算任务经过服务器的处理划分为若干个小任务,然后为计算机网络中的计算机分别分配一些小任务,通过并行处理提高处理效率,最后综合并整理计算数据,得到最后的计算结果。
分布式计算是指信息不只分布在一个软件或计算机上,而是分布于多个软件上,可以用多台或一台计算机同时运行若干个软件,通过网络实现信息的共享。与其他算法相比,
分布式算法有明显的优势:第一、共享资源更加方便。第二、能够实现计算负载的平衡,用多台计算机同时处理任务。第三、可以根据实际需要合理选择适当的计算机运行该程序。计算机分布式计算的灵魂是平衡负载和共享资源。分布式计算具有高效、快捷、准确的优势。
优点
与集中式计算相比,分布式计算的优点十分突出:
1. 分布式网络中的每台机器都能存储和处理数据,降低了对机器性能的要求,所以不必购买昂贵的高性能机器,这大大降低了硬件投资成本;
2. 扩展性极佳。在当前系统存储或计算能力不足时,可以简单地通过增加廉价PC机的方式来增加系统的处理和存储能力;
3. 处理能力极强。庞大的计算任务可以在合理分割后由分布式网络中的机器并行地处理。
主流技术
分布式计算主流技术主要有一下三种:DCOM( 分 布 式 组 件 对 象 模型)、Jaca RMI(远程方法调用)和 CORBA(公共对象请求代理结构) 。它们都在逻辑总线上实现了组件对象逻辑分层和位置分布的透明性,以及相关服务,给系统开发人员提供了诸多方便 。
CORBA即通用对象请求代理体系结构(Common Object Request Broker Architechture)的缩写,是由对象管理组OMG定义的一种
分布式体系结构。CORBA是一个开发的、与开发商无关的规范,所面向的是一个分布式体系结构以及允许不同应用通过网络协同工作的基础设施。
对象请求代理(ORB)也称为对象总线,它构成了此体系的结构引擎。通过利用ORB,可以对所有常用功能的对象实现网络支持,并几乎都可免费获得事务、安全和持续服务等。CORBA是一种语言中性的软件构件模型,可以跨越不同的网络、不同的机器和不同的操作系统,实现分布对象之间的互操作。
DCOM是Microsoft与其他业界厂商合作提出的一种分布构件对象模型(Distributed Component Object Model),其发展经历了一个相当曲折的过程。DCOM起源于动态数据交换(DDE)技术,通过剪切/粘贴(Cut/Paste)实现两个应用程序之间共享数据的动态交换。对象连接与嵌入OLE就是从DDE引伸而来的。DCOM它可以说是一种通信协议,提供组件通信的底层控制,能够使位于不同计算机上的COM对象相互通信,关于这些计算机是在局域网、广域网,还是工nternet之中,则不用考虑,也就是说DCOM技术实际上就是微软用来实现COM对象的位置透明性的。而且,DCOM是COM技术的无缝扩展,这样对于现有的基于COM的应用、组件以及工具等都易于实现向分布式计算领域的迁移,这样既保护了客户的己有投资,也使应用系统能适应现代技术的需要。
JavaRMI,是Sun公司的基于Java软件的分布式对象技术。基于Java的对象机制,它提供了一种简单的、直接的分布式应用系统的实现模式。JavaRM工的平台无关性是通过JVM来实现的,也就是说只要分布于网络中的客户机和服务器都运行JVM,就可以使用JavaRMI机制在客户程序和服务器程序间相互调用方法,实现信息传输。RMI是采用RPC机制,使分布对象可以通信和协同工作。JavaRMI最大的优势是其允许能够象传递简单类型数据一样直接进行整个对象的传递,这也是其他的分布式技术所没有的。Java对于软件构件的观点与CORBA中的构件观点存在一定的区别。在CORBA中,CORBA/ORB相当于一根软总线,构件可以即插即用。而在Java中,软件构件是能够进行可视化操作的可重用软件,它满足一定的特征要求,并可以根据需要进行定制和组装。
DDSMS
在功能和性能上相比传统功能的数据库系统,分布式
数据处理系统(Distributed DataStream Management System, DDSMS)与传统DBMS是相似的,在功能上DDSMS允许所有的数据或部分数据通过连续数据流的方式传达。
区别
如果把数据集看作一个特殊的数据流,那么可以把DDSMS定义为一个传统数据库系统的扩展。下面对DDSMS和DBMS进行比较。传统DBMS与DDSMS在功能和性能方面的几种差异:
(1)基本的计算模型不相符。传统的数据库管理系统假定 DBMS 被动地存储数据单元,而用户主动发起查询等操作,这是个用户主动,DBMS被动的模型。而DDSMS从外部数据源获取数据,当系统检测到符合查询条件的数据时将数据返回给用户,这是个DDSMS主动,用户被动的模型。
(2)DBMS的查询是精确的查询,还没有DBMS提供内建的功能支持近似查询。而DDSMS由于数据量巨大并且快速变化,在很多时候只能提供近似的查询结果。
(3)DBMS提供的是一次查询,一次查询获得查询结果,而DDSMS是连续查询,只要用户注册了一个查询,并且没有注销这个查询,那么这个查询将一直有效,DDSMS向用户不断地返回查询结果。
(4)DBMS通常不考虑与事务相关联的时间和空间的限制,其调度与处理决策不考虑数据的各种时间特性,其系统的设计指标并不强调实时性和查询服务质量的自适应性,而实时性和自适应性正好是数据流应用所必需的。
需求分析
DDSMS所处理的是一种随时间变化的数据信息序列,也就是数据流,它的特点是:连续的、潜在的、无限的、快速的,而且传统的DDSMS在实际处理过程中,这种数据序列具有到达顺序不可控、数据的速率不稳定、数据量巨大等特点。这些特点使得设计一个DDSMS需要具有以下的功能:
(1)由于物理存储空间的限制和处理效率的要求,对数据流进行在线处理时,一般只扫描数据一遍;
(2)在一定的时间内,能够对数据进行排序,使无序变为有序;
(3)对用户而言,传统的DDSMS的程序设计使用户对数据的查询具有很好的实时性;
(4)传统的DDSMS在处理数据中,当遇到数据流的数据量巨大已超过系统的承载能力时,随机或者有选择地清除一些数据以缓解系统数据的膨胀;
(5)传统的DDSMS对异常数据的处理也提出了一些要求,首先要迅速,同时要合乎实时的要求;
(6)及时的数据用户的接口能够为用户提供方便的数据信息查询。
系统结构
图1对DDSMS提供了一个可供参考的抽象系统结构。通过取样的方法控制数据输入的流量可以输入监听器。查询库可以处理共享,它存储系统的连续查询,连续查询已经在系统中注册。窗口查询的临时工作区,关于每个数据源的物理位置等静态存储这三个部分构成数据存储。在当前数据流状态上,既可以一次查询也可以连续查询。输入的监控器和查询的处理器互相联系,其结果存储在临时缓存中或通过流输给用户,而且通过变化数据输入速率可以对查询计划进行优化。这个系统可以分为下面两个部分:
(1)服务器方面:服务器访问接口可以处理客户和服务器相互的所有命令和数据,服务器访问的接口被称作是外界和服务器的纽带。服务器等待连接用户,控制器监听特定的端口访问接口,通过用户给的命令、处理结果或者数据流,最终返回查询的结果。
(2)终端接口:终端的接口是为用户操作提供的接口,屏蔽了其中的作用过程,控制命令和查询接口构成了终端的接口,DLL在终端中是终端接口模块。
主要功能模块
数据监控模块
数据监控器的功能主要有两点:
(1)根据数据的特征,构建概要数据。数据流是一个实时的、连续的、潜在无界的、有序的数据项的序列。由于数据流速率的变化是无法预测的,某一时刻到达的数据量可能会超过系统的计算能力(根据CPU周期和主存的大小),所以需要一个输入监视器在需要的时候销毁一些元组。一般采用抽样、直方图或者小波的方法构建概要数据。
(2)数据处理节点的负载均衡。降载的问题在传统数据库系统中是可以忽视的:第一,传统的数据库DBMS对数据进行的是
静态存储方式;第二,对一般数据库的查询没有QOS方面的需求;第三,传统的数据库DBMS对数据的查询是一次性的。然而,当系统的处理能力无法负荷突发流量时,如果不进行及时处理,那么整个系统的吞吐量和响应时间就会逐步恶化,便会导致系统发生拥塞,要解决流数据流速的不稳定的问题,DDSMS在数据查询问题上即将要接受巨大的考验。
存储模块
对于DDSMS性能方面,DDSMS是具有现实意义的。在对查询进行处理时,待处理的数据是储存在内存的工作区中。在其操作过程中,系统为了存储流入的数据,必须产生查询窗口,即为查询分配相应的工作区。元数据与一般的关系在磁盘中保留。就像数据字典功能,元数据包含元数据。由于需要近似处理,用来存数据流的大概信息,还需要为其中的数据流设定存储区域。
查询模块
在处理查询接口提交的数据时,查询模块起到关键性的作用。不仅有数据流上的连续查询,同时也涵盖了传统关系上的查询、插入、删除和修改等。
用户为获取一个查询可以通过向系统提交一个注册申请,以方便与DDSMS进行相互交流。之后用户会接受到一个系统发来的句柄,以便于用户使用这个句柄在今后的任意时间来查询结果,当然没有用处时用户也可随时注销以往相关查询,以保证信息的安全性。