基于HDFS的分布式存储中负载均衡技术探析
2017-12-13农健
农健
摘要:随着在线教育模式的发展,不管是用户规模还是视频资源量都有了很大的提升,这就要求对存储与系统整体性能进行进一步提升与优化。在数据存储以及用户反馈过程中,分布式技术具有较高的应用价值,其中负载均衡算法则对系统性能有着关键影响。鉴于此,该文对HDFS与负载均衡技术进行简单介绍,并围绕基于HDFS的分布式存储系统设计实现及负载均衡技术进行研究,希望能够为该项技术领域的发展提供一点理论支持。
关键词:分布式存储;HDFS;负载均衡;资源调度
中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2017)33-0004-03
1 HDFS与负载均衡技术概述
1.1 HDFS介绍
在海量大文件的存储中,HDFS的可靠性与高效性特点非常突出。对于系统文件而言,所有数据资源在系统中的存储模式都是以Block为基础,在大部分情况下,人们会按照64MB来设置Block的容量,其中,有一个名为复制因子的元素对于资源副本数目起到决定性作用。根据资源文件副本数的不同,HDFS会按照不同的存储机制对其进行处理,资源文件的存储也是以副本数目为依据而实现的,从中可以获取冗余备份,同时基于HDFS,POSIX的要求也被放宽,如此一来,在文件系统数据的访问中就可以对流的形式加以运用。关于HDFS的基本特征,主要可以涉及五个方面,具体阐述如下:
第一,HDFS大数据的分布存储方面具有强大功能。HDFS的扩展能力非常突出,并且可以按照分布式存储形式为大数据存储提供支持,对于不同的数据节点的文件系统,HDFS都可以对其加以利用,进而使一个具有教导容量的存储系统得以形成。与此同时,在集群中数据节点与总容量成正比例关系。基于此特点,HDFS在存储方面能够给予不断增长的视频资源提供强有力的支持。
第二,并发访问能力突出。从诸多节点同步进行对外服务的提供也是HDFS的特点之一,因此,用户在相关数据的访问过程中,系统维持的带宽是比较高的,在本身特性的基础上,集群中的节点的数据访问能力基本都具有最高带宽。
第三,容错能力强大。在设计HDFS时,出于其对运行环境的要求,需要考虑机器运行的故障问题。因此,HDFS最初的运行能力就是能够适应错误率较高的机器,一旦出现错误,那么就可以进行及时检测,同时对系统进行快速回复,使数据资源得到保护,进而提高数据资源的安全性。
第四,顺序式文件访问。在批量处理资源的过程中,大部分情况下都要按照顺序对数据资源进行处理。因此,为了将HDFS这一特点体现出来,同时实现其大数据访问的高效性充分发挥,在这一方面,HDFS也得到了相应的优化,自身在按照顺序读取数据时具有较高效率。
第五,流式访问。在文件系统中,数据在节点传输中会按照流的形式进行,如此可以提高系统资源读取速度,而这与视频文件简单上传多次访问的特点相契合。
1.2 负载均衡技术相关研究
在计算机集群不断发展的背景下,负载均衡由此也得到发展,在集群系统中,这一技术部分占据着重要地位,并且影响着集群系统的整体性能。而在云计算应用不断成熟的背景下,云计算技术用户规模的庞大以及制定灵活的特点使管理工作迎来了巨大挑战。针对此,我们必须以实际需求为导向,对负载均衡技术及策略进行合理选择,如此才能够使云计算的性能得到改善。负载均衡技术的特点在于高效、透明,在系统中对该项技术加以运用,可以使系统的灵活性得到强化,同时也能够实现其整体性能的改善,对于发挥资源优势而言有着积极意义。关于负载均衡的意义,主要可以涉及两个方面:一方面,负载均衡能够在不同節点进行并发访问,或者进行大量数据的平均分配,对用户请求进行分开处理,进而实现响应时间与资源利用的改进;另一方面,均衡负载可以向多个处理节点发送对资源需求较大的服务并进行处理,最后对处理结果进行汇总,并向请求用户返回。关于负载均衡算法的类型,目前主要有静态负载均衡算法、动态负载均衡算法等两类。其中轮询算法、地址散列算法等应用比较广泛,受限于篇幅,本文不做赘述。
2 基于HDFS的分布式存储系统设计及负载均衡技术研究
2.1 系统总体设计
1) 本文对基于Hadoop的云存储平台在线教育系统进行构建。其整体框架如下图所示:
图1 云存储平台框架图
Hadoop是实现整体云平台的基础,系统一共装载了三台Hadoop机器,基于系统的实现,只需要利用浏览器,用户就可以进行简单操作。因此,本文在系统构建中采用了B/S,值得一提的是,如果机器装载了Web服务器,那么就必须对Hadoop进行安装,如此才能够使分布式文件系统的交互性得到保障。在分析与验证之下,本文所述系统的Web服务器定位开源的服务器Tomcat,数据库定为轻量级数据库Mysql。
2) 按照层次化原则,将系统向四层进行划分,具体如下图所示。
根据上图,可知存储层处于最下层,在系统中的主要作用就是存储数据,由Hadoop组成集群中的所有机器的本地存储设备都需要参与到这一层的任务中,进而使底层数据的分布式存储得以实现;数据管理层的任务则是提供文件系统的操作接口,基于此支持二次开发的实现,作为开发人员,他们只需要对提供的接口加以调用,相关操作即可完成;接口层的作用在于根据用户操作,将其映射到文件系统的操作上,为用户对该系统的使用提供便利;最后就是用户访问层,这一层可以将显示功能提供给用户,为用户对系统的操作提供便利。
2.2 系统设计与实现
1) 系统功能设计与实现
用户认证与云存储平台并不关联,这一平台的作用仅仅是为数据存储提供支持,认证过程是基于该平台系统得以实现的,关于其基本功能,具体阐述如下:
用户注册与登录:只要用户名不重复,那么可以随意注册账号,在登录中,需要验证用户名与相对应的密码;
文件上传:系统中有用户接入时,页面中会有文件上传功能,基于此进行文件的上传;
文件下载:只要在自己的权限范围内,用户可以随意下载文件;
其他操作:删除无用、多余文件,变更文件夹名称等。
为了使上述功能得以实现,就要求开发人员全范围的了解HDFS文件系统的具体实现以及在存储过程中的文件结构,关于HDFS的文件列表结构,具体如下图所示。
本文以文件上传的具体实现为例进行简单阐述:
为了在分布式存储系统HDFS中存储上传的文件,就需要围绕实现上传功能的后台代码编写予以细致研究。HDFS将一个通用接口FileSystem提供出来,同时也将获取FileSystem实例的两种方法对外开放,这与通用文件上传有很多相似之处。首先,我们需要完成接口实例方法的获取,然后对其进行合理选用,使上传功能得以实现。然而,如果要对该系统中的在线教育系统加以运用,在批量上传文件这一操作上,需要与分布式存储系统相对应,这就要求我们对JQuery的插件与Uploadify插件加以利用,并在分布式存储系统前端得以实现,基于此用户就可以获取批量上传功能。关于上传时序,具体如下图所示。
2) 负载均衡模块的实现
在分布式存储系统中,该模块的核心地位毋庸置疑,系统性能在很大程度取决于此。以基于带宽的负载均衡算法为例,其主要由两个部分组成,一部分是对HDFS的ReplictionTargetChooser加以应用,并在用户视频上传中完成数据块对存储节点的找寻。而另一部分则是对HDFS的Balancer类加以应用,当服务器端对负载均衡检测时有指标偏离情况出现,那么这一部分就会自动运行。关于执行Balancer的流程,具体如下图所示。
图5 Balancer实现逻辑流程示意图
根据上图,以基于网络带宽的负载均衡算法的服务器端部分的实现为例,其需要对Balancer类加以应用,并按照上述流程,自管理节点处完成数据节点信息的获取,并基于本文算法分析,对需进行调整数据的数据节点进行计算,之后向管理节点进行反馈。管理节点处中需要调整的数据节点信息被接收之后,就要对数据转移操作予以执行,并对数据操作的正确性进行确认。如图6为具体的算法执行过程。
3 结论
总而言之,基于HDFS实现的分布式视频存储与处理系统的优点十分突出,首先,在视频数据方面,分布式存储能够有效满足大数据时代下的海量数据存储与处理的实际要求;其次,这种系统的具有优异的扩展性,能够很好適应日益增长的用户需求。基于上述系统的设计与实现进行动态性检测,可知在负载均衡与文件上传的过程中,在带宽较低时,文件上传耗时较少,随着带宽的提升,文件上传效率则相应下降,其中按照3Mbit/s进行带宽的设定时,负载均衡过程的耗时有所增加,而上传耗时则能够降低不少,这对于提高用户相应速度与整体效率而言有着积极意义。当然,在设计与研究过程中,我们依然需要关注其中存在的不足与缺陷,并围绕此展开深入研究,提出有效的改进策略,促使相关技术的作用与价值得到充分发挥。
参考文献:
[1] 郑惠瀚. 基于HDFS的分布式存储中负载均衡技术研究[D]. 哈尔滨工业大学, 2015.
[2] 张海. 基于HDFS分布式存储技术研究与优化[D]. 河北工业大学, 2013.
[3] 李晓恺. 基于HDFS分布式文件系统性能优化技术研究[D]. 中国科学院研究生院, 2012.
[4] 王来, 翟健宏. 基于HDFS的分布式存储策略分析[J]. 智能计算机与应用, 2016, 6(1).
[5] 潘阳. 基于Hadoop技术在分布式数据存储中的应用研究[D]. 大连海事大学, 2015.
[6] 张栗粽, 崔园, 罗光春,等. 面向大数据分布式存储的动态负载均衡算法[J]. 计算机科学, 2017, 44(5).
[7] 刘高军, 王帝澳. 基于Redis的海量小文件分布式存储方法研究[J]. 计算机工程与科学, 2013, 35(10).
[8] 李晓恺, 代翔, 李文杰,等. 基于纠删码和动态副本策略的HDFS改进系统[J]. 计算机应用, 2012, 32(8).