为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Hadoop云存储策略研究与优化(可编辑)

2017-11-02 37页 doc 68KB 544阅读

用户头像

is_471618

暂无简介

举报
Hadoop云存储策略研究与优化(可编辑)Hadoop云存储策略研究与优化(可编辑) Hadoop云存储策略研究与优化 学校代号: 分类号:: 密级: 学 号: 广东工业大学硕士学位论文 工学硕士 云存储策略的研究与优化 朱岩 指导教师姓名、职称: 签叠 型塾筮 专业或领域名称: 盐笠垫廛周垫盔 学生所属学院: 盐笠垫鲎瞳 论文答辩日期: 三二三生五旦 : : , .,, ,摘要 摘 要 随着云计算技术的发展以及被业界所逐渐接受,与之相随的云存储系统也得 到相应的发展,越来越多的企业和科研机构开始使用云平台构建各自的云存储体 系,...
Hadoop云存储策略研究与优化(可编辑)
Hadoop云存储策略研究与优化(可编辑) Hadoop云存储策略研究与优化 学校代号: 分类号:: 密级: 学 号: 广东工业大学硕士学位论文 工学硕士 云存储策略的研究与优化 朱岩 指导教师姓名、职称: 签叠 型塾筮 专业或领域名称: 盐笠垫廛周垫盔 学生所属学院: 盐笠垫鲎瞳 论文答辩日期: 三二三生五旦 : : , .,, ,摘要 摘 要 随着云计算技术的发展以及被业界所逐渐接受,与之相随的云存储系统也得 到相应的发展,越来越多的企业和科研机构开始使用云平台构建各自的云存储体 系,而在众多云平台中,开源实现的云平台得到了业界广泛的应用,包 括、以及等。云平台对数据的存储主要是由其分布 式文件系统实现的,因此对于的研究成为了很多公司构建各自云存 储系统的基础。 系统默认的存储策略虽然可以有效的解决大数据的存储但是在现实应 用中却存在一些不足,在默认的存储策略中,数据节点的状态信息不够完 善以及随机选择数据节点,使得控制节点在选择数据节点存储的时候容易出现系 统负载不均衡,另外当随机选择远端节点进行存储的时候可能会造成因为节点之 问网络距离较远而造成数据传输时间过长损耗系统性能的现象,同时由于 默认存储策略采用了固定的数据副本个数,在实际应用中可能会导致系统中数据 冗余太多,影响系统的负载能力。因此解决了上述问,就可以在一定程度上提 高系统的存储性能。 所以,本文在分析默认策略的不足之后,基于一种优化的 存储策略。该策略首先对数据节点的状态信息进行完善,为控制节点在选择数据 节点进行数据存储的时候提供了更多的依据。其次,该策略可以根据用户的实际 需求设置数据副本系数。再次,在随机选择数据节点时采用了值方法,即根 据节点的负载情况以及与本地节点的网络距离计算该节点的评价值。最后通过将 优化后的策略部署到仿真实验平台上,验证了该策略的可行性以及测试了该策略 的效率。实验证明,优化后的策略确实能够提高系统的存储性能,有效的平衡了 节点之间的负载,减少了系统瓶颈出现的可能性,同时加强了用户体验。 分布式文件系统运行在云平台上,优化的存储策略可以实际应 用到企业和科研机构的云数据中心,同时因为该策略具有较高的可配置性,在实 际应用中可以根据不同的需求来进行配置,从而有效地提高海量数据的存储性能。 广东工业大学硕士学位论文 关键词:云计算,云存储,,存储策略,优化,,, , , , , .,. , . . , . , ., , ., . , ., ,., ., 广东工业大学硕士学位论文 ,. . ., ,. . , , . , . : , ,, 目 录 目 录 摘 要.?.. 目 录? 第一章绪论? .课题研究背景与意义??.. .课题国内外研究现状??.. ..国外现状..国内现状.论文研究主要内容.. ..论文研究主要方法? .论文组织结构第二章云计算平台 . 云计算平台工作原理? . 计算框架?.. . 分布式文件系统? .. 技术背景以及设计目标?.. .. 的节点.. 对数据的操作.. 中的通讯协议.. 存储空间的回收? . 启动过程? ..控制节点启动??. ..数据节点的启动?. . 本章总结.. 广东工业大学硕士学位论文 第三章存储过程的分析? . 的存储过程介绍?.. .状态信息研究.数据存储策略分析 .本章总结? 第四章默认存储策略的优化??.. .设计思想? .副本系数的选择? .数据节点数据结构的完善 .心跳协议方法的改进??. .存储策略的优化? .本章总结? 第五章平台构建与实验分析?. . 实验平台搭建.实验验证与分析?. 第六章总结和展望?:.总结 .展望 参考文献. 攻读学位期间发的论文? 学位论文独创性声明 学位论文版权使用授权声明 致谢..?....?..........??.....?......?........?.?.?.....? .??. .?... ... . ....??....?.?...... ..??.?....... .?.?..??.. . ...?........................................?.... ...........?.......??.?........?............ ...?.. .. ................?..............................?............. .. ..??..... ... .. .....................?........?..........??..............?... ....... .. ................?...........?................................ ?......... ........................?.............?..?.........?..... ........?................................?.......?. 广东工业大学硕士学位论文 ... ................................................................. .... ....?..................?.....................?.?....... . .......?.............................?............?............... .............................................. . ......。...........。...。.......。。...........。...。...。。... ....。。。。。......。。。。.........。......。.... . ............................................................ . .......................................... . ................................................................?........?..........................?.......... . .......?...................?......?..............?.............. ..................... . ................................................ . .........................................................................?.?......??..........................?...... ?.?...?...........?..??..?....??..... .??.。。?......??...??..?...??....。?..、.??...................... .?.................... 第一章绪论 第一章绪论 .课题研究背景与意义 随着信息时代的来临,互联网以及互联网用户的发展,存在于互联网中的数 据量也急剧的膨胀,我们的政府、企业和学校等也已经进入数字化时代。对这些 数据的处理以及记录过程中又产生了大量的数据。中国各个大的门户网站每天产 生数据量已经达到了级别【。这宣布这大数据时代的来临,对这些大数据进 行分析也成为政企获得有效信息的重要途径之一,数据从某种程度上来说已经成 为一种财富,很多科研机构已经开始重点研究如何高效的处理大数据,而有效的 对大数据进行深度分析前提就是高效的对这些数据进行存取【】。对大数据进行高 效存取,所采用的存储策略是基础,因此对于数据存储策略的研究是现阶段大数 据存储的研究重点之一。 数据存储现在面临的问题主要是当有大规模数据需要存储时,物理存储设备 的存储容量以及访问速度没有得到相应的提升。我们现如今大部分的公司都采用 的传统的本地化存储方式或者是技术,然而本地化技术所采用的硬件方面 存在很多技术瓶颈,如单机的存储和处理能力有限,并且本地化存储策略不具备 容灾备份的功能,不能满足当前海量数据存储的发展趋势以及会造成严重的 资源 浪引。而技术是一种分布式的存储方式,其工作原理是利用多台机器的 性能来提升系统整体的性能。由于采用了多台机器,所以其较本地化存储提升了 存储的效率,同时技术也有一定的容错功能。但当面对海量的数据要对其 进行存储的时候,所需要的资金是巨大的,这是一个很难解决的问题。 技术虽然也具备一定的备份功能,但是其相应的存储策略以及自我修复功能等都 不完善,对后期维护造成了一定的影响【。 随着云计算技术的发展,科研人员看到了利用云计算技术解决大数据存储问 题。云计算是一种综合了虚拟化技术、分布式技术、并行计算、网格计算等技术 的新的计算模型和存储模型,云计算的分布式文件系统具有以往文件系统一些不 广东工业大学硕士学位论文 具备的特点,例如高容错性和安全性【,。云计算的实现方式是通过将大量的廉价 商用机以及存储设备构建一个平台对数据进行处理。这些异构的设备也通过其自 身构建而成的云平台变成可靠的、可扩展的系统用来给用户提供云服务‘ ,云计 算的发展极大的改变了现有的计算方式和商业模式,颠覆了以往数据必须存 储在 本地进行处理的模式,使得现在的企业可以以更廉价的设备存储以及处理更大量 的数据,同时云计算也有效的节约了大量的人力资源和物质资源,更适合高校和 一些科研机构进行研究工作。 基于云计算的存储系统即云存储系统,是伴随着云计算技术发展出来的一种 新的存储模式,它通过网络技术和分布式系统将分散的一些异构的设备组合在一 起,形成一个高效的、安全可靠的存储系统【。整个系统的上层是对用户提供高 质量的数据存取、访问和处理服务,而底层设备就是对海量的数据进行存储。 现在比较常用的云计算框架有的,的智慧云,的 系统,的云计算框架【】。框架的存储系统是 系统的开源实现,拥有系统的大部分功能,因此在大部分的高校、企业 以及科研机构都选用系统来进行研究和应用【】。 框架可以以普通的为基础为用户提供高效稳定的服务,同时由于 的开源特性,不同的用户可以根据自己不同的需求来设计适合自己的存储 策略。系统不但可以对数据进行存储,同时也具备了高容错性以及自动备 份和自动修复的功能【。但是在实际应用中系统暴露了一些不足,例如造 成系统单节点负载较高、对数据存储速度较慢等。本文设计的优化的存储策略正 是基于平台并且可以更好的满足现实需求的一种策略。本文基于此研究 如何满足海量数据的高速存储,目前的云存储策略还有很多不足,而且每种存储 策略都是根据实际需求设定的,所以本文主要是根据实际需求,基于设计 一种优化的存储策略来满足我们的实际情况的需要。并将在后续工作中探讨如何 将优化的存储策略进一步应用到实际的项目“广州市气象云平台”的建设中。 第一章绪论 .课题国内外研究现状 目前技术已经有了广泛的应用,在互联网领域更是发挥着巨大的作 用,在科研领域也得到了普遍关注。互联网技术迅速发展的同时,新的网络服务 模式也随之不断出现,而技术也会随着这些应用得以不断的向电信、电 商、银行、制药等业务拓展?。相信随着技术的不断发展以及完善,其会 在更多的领域中扮演更重要的角色,为我们的科研以及生活带来更多的方便并提 供更优质的云服务。 ..国外现状 目前对于的研究国外处在领先的位置上,在商业领域上,使用 了超过个节点的集群来构成框架,为用户提供搜索方面的服务, 另外还对进行科研提供了很好的平台基础和实验条件。自己独有 的.搜索门户就是通过框架来完成商品搜索索引的。.国外 著名的互联网电台和音乐社区网站通过提供的云服务来进行日志分析、 /测试评价以及处理和图表生成等同常作业。而整个网站的 数据库更是由集群构架而成,通过集群来完成对网站的同志分析 和数据挖掘等操作【叭。 在学术领域上,因为的廉价性、易用性、以及可扩展性,许多国外 的知名高校都是对进行了广泛的研究,以提高其性能使得更方便科研机 。 构对其进行应用【 等人对的推测式执行技术进行改进并发表了 】: 等人对模式进行了优化,允许用管道传送正在被操作的数据并 。 开发了 系统,并发表了 ..国内现状 国内对于云计算的研究刚刚起步,因此在对的研究上还处在起步阶 广东工业大学硕士学位论文 段,目前我国国内的部分企业也开始使用框架来完成对数据的存储以及 处理操作。 商业领域上百度用框架来处理每周超过的数据对其进行数据 分析以及网页数据挖掘;中国移动研究院开发了基于的“大云”系统,它 被用来完成中移动的数据分析工作并且还对外提供商业服务‘;阿里巴巴自 行研 发的阿里云系统也是基于构架的,其被用来存储并处理每天网站上所进 行的电子商务交易的相关数据【。 在学术领域,很多科研机构以及高校也已经开始对的研究中,并对 云平台进行了一些应用,中科院、北京大学、浙江大学、华中科技大学等 对也是进行了许多科研工作,这些工作集中在对的作业调度、安 全性提高、资源管理,数据存储以及?蚪.厶匕匕.提升方面【。 .论文研究主要内容 、分析的技术背景以及原理。重点对的系统进行研究, 以更深入地理解的实现原理。 、对的存储过程进行深入研究分析。主要对系统默认的存储 的策略进行深入的研究和分析,剖析默认存储策略并发现其不足之处。 、针对系统在实际应用出现的问题,根据实际需要设计优化的存储 策略,对其进行算法实现,编写其算法代码,在实验环境下对其进行可行性验 证。 、搭建实验环境,构建平台,通过实验来验证优化的存储策略的可 行性,测试优化的存储策略的性能和效果,并与默认的存储策略进行对比。通 过 实验发现优化策略的不足之处并继续对其进行改进。 ..论文研究主要方法 在本论文撰写的过程中要搭建基于框架的云计算平台,对云 计算平台进行分析,对其稳定性、高扩展性的特点进行研究。重点对存储 系统的默认存储策略以及其高容错性、安全可靠性进行研究。 第一章绪论 通过对的系统的研究和分析,总结出现在系统中存在 的一些缺陷以及与显示设计所不符合的地方,设计优化的存储策略以满足现实的 需要并进行高效的存储。 对系统的源码进行研究和分析,分析其实现存储功能的原理,并将优 化后的代码加入其中,部署到平台上,实验并测试优化后存储策略的性 能。本实验的最终目标就是验证在实际应用优化的存储策略可以满足海量数据的 高速存储和访问,获得更佳的存储性能。 .论文组织结构 全文由六章组成,总体结构可以分为三部分,第一部分,即本第一章主要是 分析本文课题的研究背景与研究意义;第二部分也即本文的主体部分,包括了第 二章到第五章,主要介绍本文的主要内容以及优化的存储策略的设计思想以及实 现;第三部分既本文第六章,对全文进行了总结和展望。 文章具体内容安排如下: 第一章、引言部分,主要介绍了本文课的研究背景、主要研究内容、研究的 意义以及方法。同时也介绍平台的国内外研究现状。 第二章、主要介绍了云计算平台的一些技术以及系统技术背 景和原理。首先是对系统进行分析,分析其系统特性,主要是对它的主从结 构进行研究。其次多角度的对特性、结构、原理进行详细的分析。 第三章、详细的剖析了的运行机制以及原理,对默认的存储的 策略进行研究,在对默认存储策略进行研究的过程中,可以发现原有策略 的不足之处同时也为优化存储策略提供了理论基础。 第四章、主要介绍了优化的存储策略的设计思想以及将其实现。介绍总体的 设计思想,分析在当某些条件变化的时候存储策略的改变。最后提出改进的 策略, 剖析其实现过程以及实现代码。 第五章、对平台进行构建,搭建基础的实验环和框架。对改 进的存储策略进行实验验证,同时将原有的存储策略与改进的存储策略进 广东工业大学硕士学位论文 行实验对比并分析实验结果。最后从用户的角度以及节点负载角度分析优化 后的 存储策略的性能和效果。 第六章、对整个文章的总结,然后针对改进的存储策略做出进一步的分析, 指出自己在试验的过程中一些不足和考虑不周之处,提出了需要进一步解决 的问 题。 第二章云计算平台 第二章云计算平台 . 云计算平台工作原理 云计算平台是开源基金组织开发的一个开源的可以在一般商 用机器构成的集群上可以满足用户进行分布式并行计算的框架,其核心设计思想 是和。是提出的编程模型,用于大规模数 据集的并行运算。它主要作用于对数据的处理,而它工作过程中会产生很多的中 间数据,这些中间数据就被暂存在的另一个重要组成部分一中。而 我们重点研究的对象就是 是为了满足海量数据的存储以及大规模并行计算而发展出来的云模 型结构,其综合了分布式技术,并行处理技术和网格计算技术。同时也 可以对海量数据进行存储以及通过编写、运行分布式并行应用程序对其进行处理。 的方便性、简捷性,健壮性以及高可扩展性使其得到了广泛的应用,并且 在运行大型分布式程序上展现出很大的优势。由数以千计的构成其数 据中心,用户只需要一台普通电脑就可以接入数据中心根据自己的需求进行存储 和对数据进行处理。作为的存储系统,因为其高度稳定和高效的存 储效率,可以提供给客户快速、稳定的数据存储服务。本章主要是对的技 术背景、特性和基本原理进行了深入的研究分析。 . 计算框架 是公司提出的一种基于云计算的编程模型,适合对大数 据进行并行运算。其中映射和化简,是框架的核 心思想,它综合了函数式编程语言以及矢量编程语言的特性,方便了一些对分布 式并行编程不熟悉的编程工作人员将自己的程序放在分布式系统上运行‘’。 框架的实现是指定一个函数,将一组原有的键值映射成一组新的 键值并将其发给指定的函数,从而确保函数映射出来的所有键值对共广东工业大学硕士学位论文 享相同的键组。 映射函数是对一些概念列表该列表中存储的是一些独立元素里的每 一个元素进行独立操作,在操作过程成,并不会修改原有列表,而是将操作结果 存储在一个新的列表里。例如,我们在存储学成绩的时候,发现所有学生的成绩 都多加了一分,这时候就可以定义一个“减一分”的映射函数,用来修正这个错误 。这个例子说明映射函数具有高度并行性,这在进行并行计算时是十分重 要的,在高性能计算领域也是很有用的。 化简函数是对函数操作之后的列表中的元素进行适当的合并, 继续前面的例子,如果我们想要计算班级的平均分,就可以定义一个化简 函数,通过让相邻的两个元素求平均,如此递归直到结束‘ 。从这方面来看, 函数显然没有函数那样具有高度的并行性,但是化简操作总是有一 个相对简单的答案,大规模的数据计算相对独立,所以化简函数在高度并 行计算环境下也是非常有用的。运行在集群构架上,将大规 模数据集操作分发到集群的各个节点,用来保证计算的可靠性。每个节点都会讲 自己完成工作任务的进度和状态更新周期性的报告给控制节点。如果一个节点在 超过一个系统默认的死亡间隔默认秒没有发送任何信息给控制节点, 控制节点就将这个节点记录为死亡节点并不再向这个节点分发任务‘?。在 中,每个操作都是采用命名空间的原子操作以防止并行线程间发生冲 突,当一个文件名被修改之后,系统可能会把此文件复制到原有名称以外的另一 个名字上去。 因为函数的并行能力较差,系统会将其尽量调度到一个节点上,此节 点应该是与数据存储节点距离较近的节点,这样就会节省数据传输的时间,提高 系统的计算性能。 . 分布式文件系统 .. 技术背景以及设计目标 的系统是的文件系统的开源实现,系统是一 章云计算平台 个具有高度容错性,高可扩展,可靠的分布式文件系统。它可以用于对海量的 分 布式数据进行存取的应用。作为系统的开源实现,具备了的上述 特性,对进行分析研究有利于让我们更好的了解的实现原理。 首先介绍的一些特性: 分布式系统部署在大量廉价设备上,系统中出现一些硬件错误是可以预 见的。因为这些廉价的设备是异构的,且这些设备有可能同时被大量的用户随机 访问,出现硬件错误的几率也随之增高。为了防止数据丢失,系统必须具备 自动检测,自动修复和数据备份功能。 在传统的文件系统中,存放的文件都是比较大的,而系统更是被设计用 来存储大量的大文件,因此在系统中,存储的文件一般都在百兆以上,更有 级以上的文件存储,同时系统也支持小文件的操作,对这些文件都有着 有效的存储策略。 系统对文件是采用一次写入多次读取的方式,文件的更新也是通过添加 新数据完成的,不允许对原来已经存储好的数据进行改变,当文件被写入系统, 系统就将文件的属性设置为就只读。在实际应用过程中,客户通常只是在文件的 某个位置随机读取几个级的文件。 系统的读取操作主要采用以下两种方式:一种是一次读取甚至更 大更多的数据;另外一种是大量的大规模的以文件流的方式读取,这种读取方式 通常是一次性读取数百级的数据,并将这些数据进行合并排序,然后按顺序 进行批量读取,这样做的好处就是避免了来回移动读取位置。 系统的设计是支持多并发的,这样就保证了系统的高效性能,存入系统 的文件一般是分块的,所以文件一般被用作多并发的合并操作。系统能够支 持大量客户端同时对某一个文件进行更新操作,这些客户端分布在不同的节点上, 同时系统会以最小的开销来保证写入操作的原子性和一致性,从而能够进一步保 证数据写入和存储不一致的错误。 系统对网络的稳定性要求比较高,在实际的环境中对网络延迟的要求不 很严格,所以高性能的网络带宽显得就比低延迟重要的多,在客户端对可以高速 广东工业大学硕士学位论文 率、大批量的对数据进行处理这种功能有着较高的要求,然而对文件的写入或者 读取操作的时间相应反而关注的比较少。 系统为了保证数据的安全性以及可靠性采用了冗余存储的策略,每份数 据在整个系统里都保持个或者以上的副本,存储的本地机架和远端机架上。这 种策略可以保证某一机架完全失效的情况下不会导致数据全部丢失。 其次介绍的主从结构: 系统采用了主从结构即一个集群一般包含一个服务器和多 个服务器,集群可以被多个不同的客户端访问,如图所示。在 系统中,所有被存储的文件都被分割成固定的块,在块被创建的时候 会为块分配一个位的唯一标识。每个块都会被默认的复制成三份存储在不同的 服务器上,在系统中用户也可以根据不同的情况设置不同的备份个数。 服务器在系统中属于管理者,其管理系统内所有的元数据,对元 数据的命名空间、访问控制信息、块的位置信息进行统一的保存等等。 服务器还对整个系统的策略的实施、块的备份、校验等等进行管理。 数据的读取和写入也是通过服务器实现的。而为了防止客户端频繁的对数 据读写致使服务器成为系统瓶颈,客户端只是从服务器获取要进 行读写操作的块的信息进而直接与服务器进行读写操作。这样就使 得服务器之负责管理控制整个系统。 是被设计成稳定的可以对海量数据进行存储的文件系统,并且它可以 运行在普通廉价的硬件设备上。可以提供高吞吐率的数据访问性能,可以 给应用提供更高的带宽,适合应用于存储和处理海量的数据集。在面对海量数据 以及大量用户的情况下仍然可以提供高质量的服务,同时具备优秀的并发处理能 力。其目标特性如下: 认为系统内不得硬件错误是一种常态。在集群中,存在大量的 异构的普通硬件,每个硬件都可以用来存储数据,由于这种集群结构异常庞大, 所以其中任何一个硬件发生故障的概率都很『常,从而导致系统数据丢失,集群 中一部分硬件发生故障后很难恢复。因此对整个集群的进行及时的检查,以及对 数据及时备份和恢复是非常重要的。因此在的设计过程中,以上这些功能 第二章云计算平台 都是被当作系统非常重要的功能。 对文件也是采用流式访问的形式,对于数据有很好的批处理能力, 被设计用来存储大规模的数据,其可以处理增长速度快、包含海量对象, 级的数据也可以对数以万计的级文件块进行管理。 采用了与一致的数据处理方式,即一次写入多次读取。数据在 系统中经过创建、写入、关闭操作后是不允许被更新或者修改的,这充分 保证了数据一致性,同时保障了对数据进行高吞吐率访问的能力。同时系 统对小规模数据的随机写入也有支持,在平台中应用和网络 爬虫是适应这个模型的最好说明。 在对数据进行处理的过程中,数据附近化是最高效的。所以在系统中 程序具有优先选择距离最近的数据策略。如果碰到网络延迟比较严重或者阻塞的 情况发生,采用这种策略就会很好的减少上述情况带来的时间损耗,同时也提高 了数据的吞吐率。 因为系统是采用、,开发的,所以其具有很好的平台移植性。 的良好移植性推动了其在大规模数据领域的应用,同时的设计也提供了其 它语言的接口,方便了用户的使用。 系统具备了以上特性,从而保证了数据的可靠性、安全性同时也具备 了良好的并发处理能了和高效处理海量数据的能力。系统对于数据的一致 性方面有着很好的保证,使得海量数据的存储安全可靠。 .. 的节点 系统也采取了与系统一样的主从结构,在系统中有着一个 控制节点和大量的数据节点,如图.所示。控制节 点既是管理服务器,管理着文件系统命名空间和客户端访问。数据节点在负责对 数据进行存储的同时,还负责响应客户端的续写请求。文件在系统内部的是被分 成许多数据块分别存放在一组数据节点上。数据节点会根据控制节点的指示对数 据块进行相应的操作。 广东工业大学硕士学位论文 控制节点和数据节点都是运行在普通硬件组成的机器上的。而部署在 运行系统的上,为提供了稳定的系统环境。命名空间的管 理是控制节点一个重要的功能,命名空间管理着系统对其的相应操作记录、对文 件的修改操作日志,其中也包括了对文件属性进行的修改操作。控制节点还 对数 据副本数目进行管理,用户可以根据自己的实际情况进行设置,也可以使用 系统 默认的副本系数,系统默认为个副本。 图. 体系结构 ?.. 对文件的操作 因为系统采用流方式对数据进行操作,所以在系统中读文件的 流程如下:在系统中读文件涉及到客户端、、 等三个进程和、等类的操作。流程图如 下所示: 图 读文件操作流程 先得到一个的实例,然后调用其方 远程调用,获知数据块的位置信 息。然后返回到此数据块所在的包括了数据副本的地址。 、返回一个对象给,使 用该对象的方法来对存储于上的数据块进行实际的/操 当第一个数据块读取完毕,会将与这个的连接 关掉,然后开始对下一个数据块进行相同的读取操作。等到将所有 的数据读取完毕会调用的方法。 同样的系统对文件的写操作是一个比较复杂的过程,涉及到了客户端 、、三个进程以及, 等类的操作,流程图如下所示:广东工业大学硕士学位论文 图. 。弓文件操作 首先调用的方法来创建一个新文件。 调用在命名空间里创建一个新的文件, 然后返回给。 开始向新创建的文件写数据, 写一个数据块的时候, 把数据分成很多个数据包,然后询 问这个数据块以及其副本的列表。 把数据包写进第一个距离比较近的,然后把 数据转发给第二个,这样一直转发到最后一个。 只有当列表里的都返回写入成功,这个数据包才算真的写入成 功。最后响应给成功信息,不始写下一个数据包。 当完成所有的数据块写入任务之后,调用的 方法关闭该文件。 当以上操作全部完成之后,写文件操作结 束。 数据存储在系统中是需要进行持久化的,具体过程如下:控制节点 利用事务志文件来记录对元数据进行的所有操作。 文件被保存在的本地文件系统中。还同时保存着一 第二章云计算平台 个名为的文件,是文件系统命名空间的本地化文件,里面包含 有数据块到文件的映射以及文件的属性。 由于里面保存着命名空间和文件数据块的映射,这样就可以保证 数据的快速读取。根据的默认策略以及对元数据的紧凑设计,每个元数据 大约是个字节左右,百万个元数据大约需要占用的内存空间,因此 的内存完全可以满足的工作需要。存储在硬盘的和 会在启动的时候读入内存,而中的事务操作会及时的在 中得到更新,并将更新后的保存到本地磁盘上,这个时候内存 中的已经没有用处了,可以直接删掉。这样的一个完整的过程被称为一 个检查点。 的文件对于是不透明的,在不同的目录创建文件 并使用探测的方式来确定每个目录的最佳文件个数,根据探测到的情况再去 创建 子目录。根据的设计,大量的数据文件存放在一个目录下面不是一个好的 选择,也使系统对其的支持不会很高效。当一个启动的时候,会扫描 本地系统中的所有文件,最后根据扫描结果产生本地文件对应的数据块映 射列表,并将这个映射列表发送给,这个报告就是块状态报告。 .. 中的通讯协议 平台是根据传统的/协议建立其文件系统通许协议的。 客户端通过一个可以配置的端口实现,通过协议与 通信。而通过协议与进行通信。在 系统中,不会主动发起远程过程调用,而是响应来自或者 远程过程调用的请求。 在整个通讯协议中,心跳协议有着不可替代的作用,心跳协议是保持 和,和之间的联系,让了解 的相关信息和状态,让从那里获得最新的指令, 以及同时让了解其余的信息和状态。 广东工业大学硕士学位论文 通过定期的向发送心跳,汇报自己当前的状态信心,同 时告诉自己还“活着”,而在收到发送过来的心 跳之后会向该发送命令信息,例如删除哪些块,哪些块需要增加副本 了等。 通过..参数来控制向发送心 跳的频率,默认的设置是每秒发送一次,过高的频率会对整个集群性 能产生一定的影响,而过低的频率可能会导致不能及时的获得 的信息导致存储过程的失败。 在收到心跳之后的算法处理过程如下: 首先对发送心跳的进行身份验证,还要核对注册信息等。 会更新该的状态信息,包括磁盘信息、磁盘剩余空间等。会 查询此的块状态,然后根据查询到的状况,生成对此的命令 列表,例如补足副本个数不足的数据块,删除坏掉的数据块。会检查 当前整个系统的状态更新。将生成的命令列表发送给相应的。 心跳处理过程结束。 的状态信息就是通过心跳协议发送给,而在存储策略中 会用到这些状态信息,因为心跳对于整个存储过程有着重要的作用,所以在 此进 行了详细的介绍。 .. 存储空间的回收 对于中存储空间的回收分为已下两种情况: 文件的删除与恢复 用户或者应用程序从系统中删除某个文件,首先并不会将这个文件从 中删除,而是先对这个文件重命名,然后将其剪切/目录里。只要文 件存在于这个目录里,用户就可以恢复这个文件。文件在/目录里保存的时间 里是可以由用户自己设定的,当文件保存在/目录里的时间超过设定的时间 之 后,才会删除该文件。同时释放这个文件所占用的数据块。实际上, 章云计算平台 从用户删除文件到真正释放空间两者之间会有一定的时间延迟。在默认的 策略里删除保留的时间超过小时的文件。 副本系数变化导致的文件冗余 当用户根据实际需要将某个文件的副本系数变小时,会将那些冗 余的副本删除,并且在检测时将此信息传递给。接收到该信 息后会将相应的数据块删除用以增加整个集群的空闲空间。整个操作结束与 集群 中空闲空间得到增加也有一些时间延迟。 . 启动过程 ..控制节点启动 在中,节点只分为和两种节点,所以的 启动就是以上两种节点的启动过程,首先是最先启动,必 须在其他节点启动之前启动,但是启动之后不会随之启动, 需要在完成必要的操作之后才开始启动。整个的启动 过程如图.所示,启动之后,也不会随之立马启动, 会在启动时创建服务,是主要负责与客户端进行通信, 并且对远程调用的参数和返回值进行序列化和反序列化。保存了 所有的文件系统的元数据信息和操作同志,在创建的 同时会把元数据的信息加载到内存中,因为这个操作过程会比较耗费时间, 所以 在启动之后,不会随之启动,而是在所有的元数据信息全部 加载到内存里之后的某个时机才启动。在整个信息加载完成后,调用 远程服务,此后,进入安全模式,在安全模式之下,不接 受任何数据的操作,不为任何客户端提供任何服务。这时就开始等待 的注册与通信,这些汇报的信息都是为以后的存储策略服务。 当有一段时间没有收到新的的注册信息之后,就会离开安全 模式,进入正常的客户端模式为客户端服务。广东工业大学硕士学位论文 ?????????科毫睇&??一“““”??叫剞熏吨。” .??』。,广 毫繁愁 一黼~卜?一啦?一卜一一一 ? . ?矗旨 ......,...............一 扫 厂: “一 撤告所有黛 。 咐疑盯 ????????一 盎 创鼙矗妇。,一 吾 . .士? ? ’否. 一 嗽.. 医品 爱避正蒜 一一 量 图. 启动过程的启动主要是自身的初始化以及对的注册,此时 会将自身的一些信息向汇报,而这些信息也是为以后的存储 策略服务,下面介绍的启动过程。 ..数据节点的启动 的启动时间必须要在启动之后,的和 服务不启之后,才可以不始启动。包含了主、 、、四个重要的服务组件,其中 主要保存数据块的信息,主要负责调用 的相关服务。负责客户端和数据节点之间进行通讯, 的负责为客户端和其它数据节点提供服务。集群启动的时候每个第二章云计 算平台 都必须向发送注册请求,只有当请求通过之后才可以加入到 整个集群中。整个集群中有的可能忘了或者发送了请求而 没有收到请求,这个时候会强制重新发送注册请 求。而调用协议向进行注册, 向注册有两个目的:其一是向汇报自己的状态信息,这些 信息需要定时的向汇报。其二,通过收集到的这些信息, 可以为节点选择策略提供更多的依据,这样就可以保证在选择数据节点时挑 选比 较空闲而且距离较近的节点。 . 本章总结 本章对云平台做了一个简单的介绍。对技术也做了一个详细 的分析,首先介绍了平台的工作原理,介绍了框架。其次介 绍了系统的技术背景以及系统的一些特性。最后对系统进行了 详细的介绍,重点介绍了系统的两种节点以及其启动过程。启动过 程:首先对整个集群进行初始化,将元数据加载到内存中,获取 的状态信息等。其次是向发送心跳进行注册,把自 己的状态信息报告给控制节点。同时本章也详细的分析了心跳协议。 广东工业大学硕士学位论文 第三章存储过程的分析 存储过程是本文研究的重点,存储过程包括了存储策略的实施, 前面介绍的节点的启动以及向汇报的信息都是为存 储策略的实施服务的,通过研究的存储过程和存储策略可以让我们了解 原有存储策略的实施原理以及其中存在的一些不足,为我们提出改进优化 放方法做一定的基础。 . 的存储过程介绍 客户端向存储数据时,客户端首先会向发出远程调用请求, 包括取得权限,创建文件等。会根据请求检查文件是否已经存在或者 相关的用户是否取得相应的权限再进行后续操作,如果检查成功则会为文件 创建 一个文件夹记录,反之则会在客户端抛出异常。 数据输出流 。?? 关闭 ?????.????????????.?.???????????????????????一??】一?? 块写 块报告 幽. 存储过程 客户端在取得相应的权限之后,用户在准备开始传输数据块之前, 会根据设置的副本系数不始在整个集群内部选择合适的数据节点进行对数据的存 储,类实现了的存储策略。在默认的 存储策略中,选择节点的依据主要包含了磁盘空闲空间信息,机架上的节点选择 第三章存储过程的分析 数,节点状态等等。但是在真正的实际应用中,大部分都会因为节点的磁盘性能 影响从而导致存储效率低下。由此可知在目前的存储策略中确实存在一些问题。 在选择数据节点的时候,所选择的数据节点列表时必须与设置的副本 系数一致,当以上操作都完成之后,数据块就会以文件流的方式存储到 上,传输完成且成功之后会由最后一个返回成功信息,此信息反馈给 。整个存储过程的流程如图.所示。 会按照第二章中对文件的写操作来对数据块进行存储。但是当某个数 据块写入某个失败,系统会进行以下的操作 关闭管道。 正常的上会为正在写入的块创建一个新的。会根 据心跳中的块删除不完整的数据块。 发生故障的会从管道中删除,管道中的其余两个会接 受剩余的数据块。 会记录这个数据块的副本少于默认设置的副本系数, 会为这个块选择一个新的进行写入。 多个写入失败也是有可能发生的,只要当..个 写入成功,整个写入的过程就算是成功的。而在第一次写入过 程中缺失的副本会在负载均衡以及检测策略中由系统自动恢复。 可见在整个数据存储的过程中,重点是如何选择,选择 的算法依据是根据节点的状态信息来判断是否合适。在每个数据块进 行存储的时候,都需要调用选择算法,因此对选择算法进行 研究和优化才‘能设计出更适合实际应用的存储策略。 .状态信息的研究 状态信息是对自身状态的全面描述,通过分析状态信息 对对进行操作,也是数据结构的重要组成部分。 通过接受发送给其的心跳协议来获取的状态信息。通过对状 广东工业大学硕士学位论文 态信息的分析可以让我们更好的了解如何获取处理状态信息,是我们优化 存储策略的基础之一。 目前的状态信息包括了类里面的成员变量 存储容量,剩余容量,最后更新时 间等等信息,这些信息都是通过状态信息定期向汇报,而这些信息 也是选择进行数据存储的重要依据。运行的系统命 令可以获得状态信息,云平台环境下,可以通过类来运行这些系统 命令,在类内部定义的一个静态内部类,该类实现 了获取命令相关信息的方法,方便了以后对状态信息类的编写。 : / ? 十.\? ,: : : ?:: : : : : : 图? 类 图.中的类主要功能是获取磁盘信息,它实现了类定义的 方法和方法。类关系如图所示:第三章存储过程的分析竖唑竺兰竺竺 . 厂?????函面否厂??? 孟’螂 ???旦坚竺尘塑竺???卜?刮憎吻。‖ ???????? \ 、 : 、 伽始删仉:如膳 ?: ?: ?: ??: : : : : : : : : : : 幽 类关系幽优化后的存储策略增加更多状态信息,其实现原理和类的实现 原理类似。 接下来就是如何将类获取的磁盘信息传送给。通过 类来接收获取到的磁盘信息,通过调用类里的方法 来获取类里成员变量的值即磁盘信息。由于实现了 接口和接口,只需通过调用实现类的方法执行 相关命令来获取磁盘信息。获取状态信息的基本步骤 如下: 调用类的方法,方法用于获取所在 的磁盘信息。 方法里面再调用类的方法,方法执行方法, 会调用类对象的方法执行类 方法旱面的系统命令。 执行结束后将结果返回给类的方法,它 将结果分析后获取相应信息,最终将分析获得的信息传递给内部成员变 广东工业大学硕士学位论文 量,最后通过方法返回给。 整个过程如图.所示: 图? 获取状态信息 ? 以上分析了是如何获得状态信息的实现细节,这样可以帮 助我们更好的对的状态信息进行优化,为优化存储策略提供了基础。 .数据存储策略的分析 本节主要研究默认的存储策略也是本章的重点,数据存储策略是 在存储过程中采用的存储策略,包括了位置选择、节点选择以及节点排序。 系统通过采用此种策略实现了对数据的告诉存储和读取,同时也保证了数据的本 地性以及安全可靠性。这种默认的策略简单来说就是本地选择一个节点,本地机 架选择一个节点,远端机架选择一个节点进行数据的存储。通过分析这种策略可 以让我们更好的了解原有策略的原理和不足,对我们对其做出改进提供了理论基 第三章存储过程的分析 础。下面介绍默认策略的实现原理。 采用一种名为机架感知策略的方式来确定的位置, 根据数据结构实现机架感知策略。采用这种策略可以改进数据 的可靠性、可用性以及网络带宽的利用率。通过机架感知的过程,可 以确定所在机架的,默认的存储策略就是将副本存放在不同的 机架上以保证数据的安全性,同时也保证了数据在读取的时候可以充分利用网络 的带宽。这种策略将客户端上传的数据均匀的分布在集群的机架上,有利于在某 一个节点发生故障的时候实现负载均衡,但是也增加了数据读写操作传输的代价。 在系统默认设置下,数据副本系数为,其中两个数据副本存放在本 地机架的两个节点,集群中另一个机架的节点存储最后一个副本。这种策略 很大 的降低了机架问的数据传输次数,提高了系统的工作效率。从此策略可以看出, 数据并非均匀的存储在集群的各个机架上的,而是本地机架存储了三分之二的数 据副本,其他机架存储了另外的副本。存储方式如下图所示,这样的存储策略可 以很好的利用网络的带宽同时对数据的可靠性和可读取性没有什么大的影响。 图? 默认副本存储不蒽 类将整个集群的节点归纳为一个树状的网络拓扑图,如图 所示,节点之问的距离是按照以下方式计算的:两个节点之『白的距离就是这 两个节点分别到共同祖先节点的距离之和,同一个机架上的两个节点距离是, 同一数据中心不同机架上的节点之问的距离为,对于不同数据中心之间两个节 ’气广东工业大学硕士学位论文 点之间的距离则要视情况而定。 图树状的网络拓扑图 类是系统中用来保存的一种数 据结构,主要是用来保存主机与之间的映射关系,同时也 利用这个数据结构计算整个集群的负载状况,类是的 存储结构,在将交给保存之前, 必须将的主机地址转化为/木/术/木这种形式,方便类 对其进行保存。与类相关联的类图如图?所示,其中接 口表示在整个网络拓扑结构中节点的抽象,一个的实例可能表示一个机架, 路由器或者是一个,的实例同样也可以表示一个机架或者是 路由器,但是不能表示。这就是的机架感知策略。是 接口的一个实现,表示一个节点实体,并且可以用来表示现实的, 它的四个属性的含义分别是:表示节点名称,表示节点的网络位置, 第三章存储过程的分析 表示节点位于网络拓扑中的层次,表示节点的父节点。 ?: :: : : :,:: :.:: :: :。:: ?: ? : : : :: ‘: : : :: :: : :。:: :: : 图? 关联的类幽 ?在集群中,一个路由器节点可以包含多个路由器节点,也可以包含 多个机架节点,一个机架节点可以包含多个数据节点,这是使用 来存储所有节点的方式。正是通过这种网络拓 扑结构来表示在物理位置上的映射,这种结构可以方便的计算节点之 间的距离,同时也为计算集群的负载情况提供了计算依据。例如,同一个机架 上 的物理距离是非常近的,可能是在一个局域网内。这样就使得 可以快速的计算此局域网的负载状况,这对选取以提高整 个系统的存储性能是很重要的。 基于以上的网络存储模型,就可以利用默认存储策略的 来选择,这个过程被称为节点位置选择策略,其算法流程如图?所示, 以上就是最基本的存储策略,算法说明如下: 系统会根据默认策略选择,在此之前,系统首先会现集群中所有的 的状态和用户设置的备份系数。然后再计算每个机架上可以选择的最大 的可用节点个数。 ,广东工业大学硕士学位论文 节点位置选择策略会先在本地节点中选择一个节点,再根据节点选择策略来 判断节点是否合适。然后在远端机架再选择一个节点,同样用节点选择策略 来判 断其是否合适。最后再从本地机架上选取一个节点,选择的节点还是需要通 过节 点选择策略的判断。 如果客户端设置的副本系数大于,则剩余的节点会在集群中随机选择,选 中的节点同样要通过节点选择策略的判断。 存储策略在返回选择的之前,需要对节点进行排序,然后再返回 给。 是 是 图.肖点位置选择策略算法示意图 在选择本地节点或者远端机架上的节点时,都会将一个节点作为参考,其按 第三章存储过程的分析 照如下方式实现: 没有参考节点,系统就会从整个集群中随机选择一个合适的作 为本地机架节点。 、否则就在参考节点所在的机架上选择一个合适的作为本地机架 节点。 集群中没有合适的节点作为参考节点,就从已经选择出的中挑 一个
/
本文档为【Hadoop云存储策略研究与优化(可编辑)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索