欢迎来到天天文库
浏览记录
ID:8149876
大小:199.50 KB
页数:6页
时间:2018-03-07
《基于hdfs的云存储系统的研究与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于HDFS的云存储系统的研究与实现宋杰[1],邢四为[1],王磊[1],陈林锋[1](1.安徽大学计算机科学与技术学院,安徽合肥230601)摘要:针对海量数据的存储问题,传统方法一般是通过购置更多数量的服务器来提升计算和存储能力,存在硬件成本高,存储效率低等缺点。本文旨在通过构建基于Hadoop分布式文件系统的云存储系统,解决海量数据存储难题。文章首先阐述了云存储的相关理论,接着对HDFS的管理机制和MapReduce编程模型进行了分析,最后结合实际需求,设计并实现了一个基于Hadoop的云存储系统。经过测试,该系统有效的解决
2、了海量数据存储管理问题,具有开发成本低、处理速度快、运行稳定、易于扩展等特点。关键字:Hadoop;HDFS;MapReduce;云存储;分布式系统中图分类号:TP306文献标志码:A引言随着计算机网络技术的快速发展,信息量呈爆炸性增长,数据存储逐渐成为制约企业发展的关键问题。企业现有系统的扩展能力差,难以满足企业快速变化的业务需求[1]。传统的NAS方案扩展能力有限,并且面向企业级的NAS设备价格往往非常昂贵,购买以及安装独立的NAS设备,将面临着巨大的经济压力和额外的维护成本。作为一种新兴的商业计算模型,云计算具有动态部署的功
3、能,可以利用廉价的服务器构建企业级存储平台,具有更加弹性、更加安全以及更低的成本[2]。本文通过对开源云计算平台Hadoop的研究,提出了基于Hadoop构建云存储平台,通过采用Linux集群技术、分布式文件系统和云计算框架,实现了海量数据存储业务项目基金:2010安徽省自然科学基金研究项目(KJ2010B123)作者简介:宋杰(1966-),男,副教授,研究方向为嵌入式系统、计算机原理与接口、生物信息学;邢四为(1988-),男,硕士生,主要研究方向为嵌入式系统应用。1.云存储及其架构模式1.1云存储相关理论云存储概念是在云计算
4、概念上延伸和发展出来的一个新的概念。云存储的本质是服务[3][4],云存储通过计算机集群技术、网格技术和分布式文件系统等技术,将网络中大量各种不同类型的存储设备组织起来协同工作,提供统一的数据存储服务和业务访问功能的一种存储模式[5]。云存储模式比较传统存储模式具有如下特点:第一,在功能上,相比传统存储模式面向如高性能计算、事务处理应用,云存储模式具有面向多种类型的网络在线存储服务的特点;第二,在性能上,云存储模式具有高数据安全性、高可靠性、高效率,以及适合处理大规模用户、网络环境复杂多变等业务的特点;第三,在数据管理功能上,云存
5、储模式需要满足传统文件访问方式,同时能够支持海量数据管理并提供公共服务支撑功能,以方便云存储系统后台数据的维护[6]。基于上述特点,云存储模式整体架构自底向上依次是:数据存储层、数据管理层、数据服务层以及云端应用层。数据存储层包括底层的存储介质部署、计算机集群搭建以及设备虚拟化过程;数据管理层实现用户权限控制、数据安全等业务;数据服务层实现数据存储、共享和备份业务逻辑;云端应用层实现用户的定制业务[7]。1.1Hadoop框架的工作机制Hadoop为应用程序透明的提供了一组稳定可靠的接口。Hadoop框架的主要组成部分是Hadoo
6、p分布式文件系统(HDFS)和MapReduce的实现[8]。HDFS采用Master/Slave架构,一个HDFS集群由一个NameNode节点和一组DataNode节点组成。NameNode是一个中心服务器,负责管理文件系统的名字空间(NameSpace)以及客户端对文件的访问。在集群系统中,一般在一个节点上运行一个DataNode,负责管理它所在节点上的数据存储,并负责处理文件系统客户端的读写请求,在NameNode的统一调度下进行数据块的创建、删除和复制。Hadoop还实现了Google的MapReduce分布式计算模型,
7、MapReduce把应用程序的总任务分割成许多子任务,每个子任务可以在任何集群节点(DataNode节点,通常也作为计算节点)上并行处理。HDFS创建了多份数据块(datablocks)的副本(Replicas),以保证各个子任务节点计算的可靠性(Reliability)。由于采用了分布式文件系统和MapReduce模型,因此Hadoop框架具有高容错性及对数据读写的高吞吐率,能自动处理失败节点。1.2HDFS的管理机制HDFS(HadoopDistributedFileSystem)是一个运行在普通硬件之上的分布式文件系统。集群
8、包括NameNode、SecondaryNameNode和DataNode三个部分[9]。一般来说,集群中有一台作为NameNode,负责整个系统元数据的存储记录和对整个系统的控制;一台机器作为SecondaryNameNode,负责备份NameN
此文档下载收益归作者所有