成都理工大学地球探测与信息技术重点实验室 刘登芬 苗 放 何 朋
随着经济、科技的发展,人类对自然的破坏越来越严重,各类突发事件频繁发生,突发事件由于其突然性和快速性给人们造成了一幕幕惨剧,使得各国认真考虑问题的严重性,想方设法减少其对人类生命财产造成的伤害,我国也不例外。
应急管理[1]是对公共危机的监测、预防和处理的整个动态过程。目前,我国应急管理仍处于落后状态,还有许多薄弱之处,虽有一套预案但没有有效的管理系统,管理软件和平台建设发展不是很快,很难完成“个人统一指挥,群体快速响应”的理想状态,迫切需要构建直观且操作性强的系统,这就需要探求高效的应急管理机制,解决应急管理平台应用中各种问题。应急管理中最重要的是数据,数据如何调度,影响着云端的工作效率,影响着客户端之间协同和实时响应。
为了解决问题,在空间信息网络服务模式研究的基础上,针对应急管理对数据的需求,本论文采用G/S(地理信息浏览器/服务云,Geo-information Browser/Service Cloud)模式[3]进行空间信息网络服务,提出G/S模式下海量异构数据调度的需求,并在此基础上研究调度算法并实现应用。
针对C/S和B/S模式在空间信息网络服务中的缺点,通过研究空间信息服务的数据和信息特点和结构,应对应急管理服务的几个瓶颈问题,将云计算中的“聚合”理念与空间信息网络服务模式相结合,提出一种空间信息网络服务模式:地理信息浏览器/服务云(G/S)模式[2]。
G/S模式的实质就是“数据分散,信息汇聚,服务聚合”,采用应急管理标记语言EMML(Emergency Management Markup Language)对分布在网络上各种海量异构数据进行统一描述和可视化表达,以地理信息浏览器作为客户端,以带有分布式文件系统的服务器作为服务云端,通过“请求-聚合-服务”的客户端动态聚合服务机制[3,4],实现空间信息网络服务和应急管理。
图1是应急管理服务云体系架构图,G是地理信息浏览器,有交互操作、地理信息数据可视化与虚拟现实、查询分析与工具应用等;S为应急管理服务云,包括物理采集云、网络采集云、应急管理存储云部分,这些云通过应急管理标记语言EMML实现对数据和资源的组织和管理,实现统一调度
G/S模式中服务云通过分布式文件系统来存储、组织和处理数据,选择合适的调度算法来进行数据调度,保证富客户端的实时性。空间信息服务由于其复杂性、多态性、异构性以及用户需求的多样性,使得空间信息网络服务模式应具备一定的特性,如负载均衡、冗余存储等;要实现客户端的动态聚合和高并发访问数据,必须具有多个云端,并且提供实时性、高可靠性的高效调度;为了保证系统架构的可扩展性,服务云端应还具备自适应功能。
在分布式文件系统中有几种常用的数据调度算法,如轮询调度算法,权重轮询调度算法,目标地址散列调度算法,动态文件分配平衡算法[5]等。经过综合对比,本文采用动态作业分配平衡数据调度算法,并改进以实现应急管理海量异构数据的调度。
G端选择一个作业进行连接请求,发送作业系统确认消息到平衡控制器,若平衡控制器响应正常,则向请求响应一个消息告知G端可以进行该作业系统的正常访问。地理信息浏览器中输入某种属性条件查询作业系统,G端将消息请求发送到平衡控制器,平衡控制器进行作业查找,将检索查询到的满足属性要求的作业按照被请求的次序响应给G端。
动态作业分配平衡调度的定义为:云S={S0,S1,...,Sn-1},云端作业服务器当前请求数的总和为Nsum=ΣN(Si)(i=0,1,..,n-1),N(Si)描述为Si的目前请求数,P(Si)描述为Si的临界值。当新作业调度请求传输到Sm,当且仅当Sm满足条件(N(Sm)/Nsum)/P(Sm)=min{(N(Si)/Nsum)/P(Si)}(i=0,1,…,n-1)(P(Si)不能为零)。
分布式文件系统当前请求数总和在这次检索中是个静态常量,系统判断条件可以简化为:N(Sm)/P(Sm)=min{N(Si)/P(Si)}(i=0,1,…,n-1)(P(Si)不能为零)。从此判断条件中可知除法所占有的CPU周期比乘法占有的周期要多,并且分布式文件系统服务器的最大值大于零,判断条件可进一步简化为:N(Sm)/P(Sm)>N(Si)/P(Si),将除法转换成乘法即N(Sm)*P(Si)>N(Si)*P(Sm),当且仅当分布式文件系统的临界值为零时,作业系统此时不能调度。
在经过各种算法比较后,动态作业分配平衡算法从硬件性能和数据存储以及数据调度方面符合调度需求。但是,算法中云端服务器临界值的确立没有一个统一和有效的标准,几乎都是由系统管理员做出大概地估算。若这样,则存在非常大的差异和随意性,将会导致负载分配的不科学,势必会导致负载的不平衡。因此要想实现G/S模式对数据的调度,就需要改进动态作业分配平衡数据调度算法。
图1 G/S模式应急管理服务云体系架构图
图2 改进后的动态作业分配平衡算法实现流程图
图3 改进前算法读取作业性能测试
先设立两个临界值C1和C2,分别表示为源云端和目标云端作业系统的临界值。注意每个云端作业系统的负载,将其与这两个临界值对比,确定源结点和目标结点之间可以转移的负载量的大小,然后响应给相应的源结点和目标结点。源作业系统管理自己的负载,目标作业系统做好准备接收负载即可。算法主要通过子树转移方法,从源作业系统转移到目标作业系统。以下为修改算法的主要参数代码:
BEGIN For j=1 to m Do
If Load(SSi) > C1 Then ADD(SSi,OriginArray)
Else If Load(SSi) < C2 Then ADD(MSi,AimArray)
SendSS=MAX(OriginArray)//取负载最大的服务器作源
SendLoad=Load(SendSS)-(C1+C2)/2//发送负载量ReceiveResult=φ//接收结点集合初始化
While(SendLoad > 0)&(AimArray≠φ)Do
BEGIN AcceptSS=MIN(AimArray);
DEL(AcceptSS,AimArray)
AcceptLoad=(C1+C2)/2-Load(AcceptSS)//接收负载ReceiveResult=ReceiveRes ult∪{(AcceptSS,AcceptLoad)}
SendLoad=SendLoad-AcceptLoad//修改过载量END
Return(SendSS,ReceiveResult)//返回负载转移选择结果END
改进后的动态作业分配平衡算法实现流程图如图2所示。
在选取改进的动态作业分配平衡数据调度算法后,搭建所需的Hadoop应用平台,对环境变量进行配置,修改源代码,通过EMML实现数据格式的一致以及数据标准的统一;修改动态作业分配平衡数据调度算法,使其在应用平台下更高效地完成数据调度。
安装和配置Hadoop应用平台,配置服务器,查看相关属性和参数等。由于系统中要完成namenode到datanode的SSH无密钥认证,因此需要设置对应的SSH无密码公钥认证方式;部署Java开发运行环境,修改部分源代码。Hadoop在功能和系统结构上符合G/S模式的应用需求,但其不支持EMML,为了满足数据调度的应用需求,在不改变体系结构及功能的情况下实现系统对EMML的支持,把原有的配置文件hadoop-default.xml和hadoop-site.xml修改为hadoop-default.emml和hadoop-site.emml,而且将原有的参数配置也设置为EMML格式,实现系统中新的参数读取要在源代码中增加字符型指针(char *tEMML);设置相关datanode结点和Linux结点。在云端分布式文件系统上编程实现改进的动态作业分配平衡数据调度算法,最后进行性能测试,分析结果。
测试上载到云端作业系统中5000个各种格式的作业文件,通过Iozone中的Read完成系统读取作业的性能测试,算法改进前后读取作业性能测试如图3、4所示。
图3和图4中x轴和y轴分别表示文件大小和记录大小,z轴表示传输值,可以看出改进前算法读取文件随着文件的增大而不稳定,而改进后调度算法则随着文件的增大而越趋于稳定。
从测试结果比较中可以得出,相比于改进前,使用了改进后的动态作业分配平衡算法的云端作业系统,在响应时间、网络吞吐量方面都有很大的差距;在算法改进后,文件的分布几乎是平均分配的,并且随着请求数的增大,效果越来越明显。 改进后的动态作业分配调度算法能很好地实现数据的存储调度,还能有效提高数据调度存储、处理总量和反应速度,尤其对于海量数据时这种算法优化效果更加明显。由此验证了改进的动态文件分配平衡算法的正确性与有效性。
为了解决应急管理中海量异构数据的调度问题,很好的符合应急管理的需求,本文采用G/S模式作为应急管理云服务体系架构,分析G/S模式下对海量异构数据的需求,并在此基础上研究数据调度算法及其应用。G/S模式的应急管理云服务体系架构运用松散耦合、多层设计、集成融合、分布式等设计理念,运用应急管理标记语言EMML,采用改进的动态文件分配平衡算法进行数据调度,通过“请求-聚合-服务”机制对整个应急管理数据进行组织、和管理,做到“数据分散,信息汇聚,服务聚合”。
根据G/S模式对应急管理海量异构数据的需求,分析分布式文件系统中的各种算法,选择合适的动态作业分配平衡算法,并改进它,使其更好的满足G/S模式下数据的需求,最后进行性能测试和结果验证算法的正确性和高效性。
[1]王宏伟.突发事件应急管理:预防、处置与恢复重建著[M].北京:中央广播电视大学出版社,2009.
[2]苗放,叶成名,刘瑞等.新一代数字地球平台与“数字中国”技术体系架构探讨[J].测绘科学,2007,32(6):157-158.
[3]郭曦榕,苗放,王华军,许义兴等.空间信息G/S网络访问模式体系架构初探[J].计算机应用与软件,2009,26(10):72-74.
[4]俞晓.空间信息管理——G/S模式研究[D].成都:成都理工大学信息工程学院,2008.
[5]崔力升.G/S模式下分布式文件系统中数据调度的应用研究[D].成都理工大学,2011.