张 华
(福建警察学院 计算机与信息安全管理系,福州 350007)
随着中国科技的快速发展,智能手机的崛起改善了人们的生活方式,提高了人们的生活效率,同时移动网络平台建设也面临更大的挑战。随着互联网及社交软件的普及,数据信息应用及共享趋于全球化,需要最大化的分享和利用数据资源来服务于社会,因此需要更先进的数据处理技术。其中Hadoop数据处理理念与传统模式不同,简单来说,它主要强调建立一个开放资源的平台,迁移代码至数据,而不是将数据迁移至代码,节省了数据传输耗费的时间。这项技术是由Doug Cutting团队于2005年开发设计的,旨在扩展网络数据信息资源处理系统,解决Google等电子搜索引擎的垄断性技术。
根据《第32次中国互联网发展状况统计报告》分析, 对大数据的定义从三个方面界定:数据体量、复杂程度、应用价值[1]。数据体量大是指数据源具有一定规模,常规数据采集软件不能完成。但著名咨询公司麦肯锡认为“大”的定义是动态的,时代的进步和技术革新会提高对数据体量大的定义,而且同时期内不同领域不同部门对数据体量大的标准也不一样。复杂程度区分大数据是由德勤咨询计数器负责人罗伯特.福莱提出,他认为大数据的第一属性是复杂程度,数据源排列的查询难度大小决定了是否能够划分为大数据类别。应用价值及应用频率则更加直观的体现是否可以划分为大数据。数据使用也从广度和深度两方面对完善网络平台有更高的要求。广义业务中有现有的性能数据、话单数据、参数数据等,而深度性可延展到话单分析,从纯粹的KPI查看、告警查看、话单查看到关联综合分析及智能优化,都是完善网络平台继续完成的任务。
电信是海量数据的唯一收集点和存储平台,也是网络时代各种业务必须应用到的开放式数据信息资源库。电信大数据平台的功能是对电信网络内数据资源库信息从收集、整理到分析的一系列作业。电信市场中对周期统计数据的应用需求不断增加,需要以最敏锐的洞察力洞察出市场行情的变化和发展趋势,以此面对严峻的行业竞争,因此需要电信员工对大量数据进行分析和统计。根据数据统计结果分析,Hadoop中不同组件拥有不同特性,不同特性满足不同应用需求,例如:Hive可提供数据库语言,可应用于迅速统计并加以分析;Hbase可应用于便捷查询;中间件对外部系统提供API接口。使用数据资源库的信息及已成熟的数据分析算法,通过mahout对复杂原理数据分析完成专业分析工作,完整体现整个电信大数据分析平台。Hadoop是Apache lucene中mutch的一个子项目,都由Doug Cutting 设想创立,nutch是Lucene文本搜索和查询库的扩展,具有开放和民主的特性,主要负责web搜索引擎中的分布式系统处理,自我修复故障和负载均衡等问题。Hadoop项目可以充实并辅助完成nutch网络扩展技术,其全面发展的特性和低成本学习及使用快速被行业接纳和认可,被公认为可选择使用的高性价比大数据分析技术。但因为业务情况的复杂多变,Hadoop还在不断完善改进中。
Hadoop的调整策略研究主要分三个方面:推测机制的研究、针对数据位置的改进研究和针对shuffle阶段的改进研究。
研究推测机制是一种系统内自我调节策略,通过用运行快的节点帮助运行慢的节点实现自我改善,提高运行效率。但是有待优化的是判断能力不够,可能会在节点慢速或者快速的问题上出现误判,从而影响整个系统的工作效率。对此有国外研究人员提出LATE算法,有效地改善了对节点快慢速度的判别。在国内,也有研究人员对 LATE 算法进行完善,提出了 SAMR等算法,这些研究优化了整个系统的性能[3]。数据位置研究采用并行数据处理系统的两个阶段来完成。首先是Map阶段,产生中间过程的结果,然后必须经过组装之后才能被reduce调度使用并在网上传输。针对这个过程产生的负荷有国外研究人员提出了Delay Scheduling、6Quincy等调度算法,并投入实践,结果表明有一定良好的效果。
Shuffle的改善调度策略。shuffle阶段是整个数据处理系统中所花费时间最长的一个阶段,很多国内外学者为了改良这一点,优化shuffle阶段的工作时间做出了很大努力。研究提出了 Orchestra管理系统,缩减数据传递工作量而提出 pre-shuffle 机制,这些策略都能有效改良系统的配置,提升系统的性能指标数据[4]。
除此之外,还有研究人员提出了合理分配数据预先判断和预测分配时间以缩减系统的反应时间,国内学者也在优化阶段的基础之上自行调整以适应hadoop的使用调度算法策略。
对大数据的处理模式采用分布式、网络算法和并行处理等多种技术综合。这一整套完整的大数据组织处理方案实现了便捷终端连接及移除、分布计算和存储、庞大的容错机制等一系列功能(如图1)[5]。顶级用户不需要了解基础工作原理,只需将它当作一种使用工具来获得所需信息即可。用户可以使用个人计算机或PDA端口同步云系统,且系统硬件组成由互联网平台连接多台不同结构的计算机构成,使用便捷,效果明显,所以Hadoop被广泛应用于社会各个领域。
图1 Hadoop平台架构
Hadoop由JobTracker和TaskTracker两个部分构成。其中JobTracker位置与控制节点于一处主导Map/Reduce的控制性能,以完成创建分节点为结果导向:TaskTracker位于数据节点,以完成分析处理数据并传输结果给JobTracker为任务。这种运行模式完成了映射阶段在各个子节点处理而不需要通过网络上传,只在最后阶段才向NameNode传输结果。MapReduce作为Googlr的核心技术被大范围应用到大数据计算中,基于此项技术,编写分布式程序难度降低,即使不了解分布式计算的用户也能轻松编程,实现大数据计算。根据实践应用,MapReduce更适合处理大规模大集群数据库。MapReduce构架的几大优势:(1)动态增减计算节点,弹性计算;(2)支持节点故障状态下仍能完成任务转移;(3)可迁移任务至最近节点;(4)备份分散式数据到多个节点。
HDFS集群由一个控制节点和若干个数据节点组成。控制节点需要管理系统的命名,服务器端口、访问权限和文件属性修改性能,磁盘空间占比等,是构成系统中最重要的部分。数据节点主要负责存储数据。客户计算机程序端口若是要访问数据节点需要先通过控制节点获得元数据,NameNode帮助用户记录文件的访问频率。HDFS则分割大数据分开存储到不同的数据节点,并根据控制节点和数据节点的位置将数据进行必要的迁移。通常情况在一个集群下只需要一台高档计算器管理服务器,多台同时管理数据节点。而管理服务器的任务是维护数据与数据节点之间的映射阶段并保护数据存取过程。HDFS中EditLog表示标记为事务日志,记录元数据变化,FsImage表示标记为映像文件,表示为系统的namepace。系统启动后,数据节点会向控制节点传送信息,主要计算任务由数据节点承担,程序用户如需要找数据节点需先从控制节点获取数据标识。HDFS的系统文件扩展空间非常庞大,任何一台计算机都会影响整个系统的瘫痪,导致传输过程中的数据丢失,所以需设置容错机制定期巡检各分节点工作状态并进行自我修复。
Hadoop大数据集群的物理软件、硬件配置的组合多种多样,而数据库的信息需要分布式存储于各数据节点中,所以拥有庞大的容错机制必不可少。其中有两种情况发生频率较高:一是当数据节点出现错误时,心跳机制可以定时向控制节点反馈故障或错误信号。若控制节点在接收到信号之后没有在相应时间内做出反馈信息,该机制则会自我判定该节点故障生成并终止调度,还原至数据迁移之前的状态。转换Map任务指令至其他位置上时,Reduce指令会告知等待读取的数据节点并做出相应调度,在无效节点数量多时,容错机制也允许其他节点执行无效节点任务。其二是控制节点诊断出错误,虽然控制节点会定期设立巡检点并传输出数据,以防程序的主要控制性能无效后妨碍数据迁移的效率,但仍然避免不了主控制节点会出现故障状态,所以当诊断主节点故障时,需立即从最新巡检点发出恢复指令,将数据备份。然后重启Mapreduce,这个过程用户也可以完成。
HBase是HDFS分布式存储系统数据库结构中的一个分项目。它有异于oracle这一类结构型数据库,属于大数据集群存储的非结构式数据库,受众主要针对列数据存储,而传统数据库受众主要针对行数据存储。HDFS运行系统中存储数据信息的地方是在子表服务器内。这个系统可保持信息迁移的高可靠性及弹性分布。运行模式只能通过主键Row Key 和Range完成检索功能,存储非传统结构型数据。其设计原理是为解决大数据集群关系类数据库理论和实践的差异局限性,因为传统关系类数据处理技术经过多年研究没有较大突破,始终只能完成49个主节点内的信息迁移处理。HBase的大存储空间高速复制读写性能能够使大集群数据快速分布传送到上千台服务器,创立连接端口。相较于其他系统,HBase的核心优势体现在延展空间大,可以预先切分出20%的磁盘存储空间应对数据库信息量的变化。其次可实现多台计算器用户同时进入端口进行高速读写。其工作原理是将数据集合分布式存储到多台计算器上,随着进入服务器端口的用户数量增加,数千台计算器可同时应对访问指令,另外其运行系统中的缓存机制也可提高接受用户访问指令的概率。第三个优化功能在于它的容错机制,因为HBase运行是基于HDFS系统上,所以运行中的服务器诊断出读写问题时,也可从日志中发出恢复数据指令,HBase系统可自行调度其他服务器接受指令恢复数据读写过程。因此当数据迁移成功就证明复制指令已发出并完成,以此保证整个系统运行模式的高实用性。
遥控感应成像型数据库的分辨率和数据集合的应用推广面呈上涨趋势,因此就如何加强存储空间和和高速读写以及更新频率为探讨课题,作为研究热点。在全球大规模发展影像数据绘制情况下通常采用金字塔模型,其模型的应用在图片压缩、转换处理索引及地形可视方面尤为明显。其原理是以原计算规则生产不同分辨率的阶层,后对每个不同阶层规则进行分布分块调度,最后显示结果时只需要把最主要显示的阶段迁移至内部存储服务器,以此提高服务器显示效率。这个应用在构建虚拟地形结构的方面频率较高,范围较广。从其他方面考察可知,传统分布式单机处理服务器已越来越不能满足现如今产生的呈快速上涨趋势的大规模集群遥控影像数据库金字塔构建问题。因此有研究学者提出可结合全球网格部分技术,key-value磁盘存储及Hilbert空间填充曲线应用几种技术实现Hadoop云计算平台下的影像金字塔并行架构。
在地形方面的数据结构一直都是吸引数据研究者的一大领域,尤其是大规模地形数据,其结构、组织、应用和发展推广广泛地被社会各界关注。像这样全球范围的高分辨率遥控感应成像应用数据包可界定为真正的大数据。研究表明使用瓦片金字塔模型分析处理全球规模的大数据可取得较好效果。许多学者也将注意力集中在金字塔的储存空间,因为自定义大内存文件夹存放金字塔文件,可以有效解决内存碎片的情况,但这样的处理模式并不适用于局部更新。因为金字塔模型可以实现不同分辨率数据库之间的无误查询。不同层次分辨率成像影像和DEM数据结构处理才会都倾向于采用这种方法。其中值得一提的是杜清运于2011年提出方案:采用内嵌金塔模型瓦片地图数据集,并用“分层分块”理念构建,筑成大规模成像影像和DEM数据库的理想结构。这种方案既能提高处理高分辨率数据效率,又能节省数据查询时间,因此可以大幅提升系统性能。
地形方面的数据结构在组织方案确定之前需要调整几个方面的工作。首先是大数据的分层、分块、分布。为了对数据做高效的分层处理,提高数据分辩率需要将数据做分层导入,每一个阶段有适合该节点的分辨率层次。即使是同层分辨率数据也只能分次导入至内存磁盘,地形数据也可以分地域处理、以便动态的信息调整。还需要考虑磁盘存储容量及网络传送路径、读写能力对文件属性及大小的要求,以免造成耗费空间地形数据传输时间。现在较常使用的地形数据组织方式是根据现有的地形比例图像分层处理。因为金字塔每一层都有这个层次对应的一个比例尺分辨率图像,通过分层再整合整个图像数据来管理这些数据。目前的种数据方案是以现有的比例尺图像作为分层依据,而且这个比例尺对应于金字塔的每一层,分层后再按图幅的大小分配数据,再分别安排对应的服务器低数据进行管理,这种情况下很多普通的计算机都可以连接增大层存储量,整个容量动态扩大过程不需要停机。