基于HDFS的云存储系统的研究与实现.doc

上传人:da****u 文档编号:3630309 上传时间:2019-06-27 格式:DOC 页数:7 大小:199.50KB
下载 相关 举报
基于HDFS的云存储系统的研究与实现.doc_第1页
第1页 / 共7页
基于HDFS的云存储系统的研究与实现.doc_第2页
第2页 / 共7页
基于HDFS的云存储系统的研究与实现.doc_第3页
第3页 / 共7页
基于HDFS的云存储系统的研究与实现.doc_第4页
第4页 / 共7页
基于HDFS的云存储系统的研究与实现.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

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 集群技术、分布式文件系统和云计算框架,实现了海量数据存储业务 1。1. 云存储及其架构模式1.1 云 存 储 相 关 理 论云存储概念是在云计算概念上延伸和发展出来的一个新的概念。云存储的本质是服务 3 4,云存储通过计算机集群技术、网格技术和分布式文件系统等技术,将网络中大量各种不同类型的存储设备组织起来协同工作,提供统一的数据存储服务和业务访问功能的一种存储模式 5。云存储模式比较传统存储模式具有如下特点:第一,在功能上,相比传统存储模式

4、面向如高性能计算、事务处理应用,云存储模式具有面向多种类型的网络在线存储服务的特点;第二,在性能上,云存储模式具有高数据安全性、高可靠性、高效率,以及适合处理大规模用户、网络环境复杂多变等业务的特点;第项 目 基 金 : 2010 安 徽 省 自 然 科 学 基 金 研 究 项 目 ( KJ2010B123)作 者 简 介 : 宋 杰 (1966-), 男 , 副 教 授 , 研 究 方 向 为 嵌 入 式 系 统 、 计 算 机 原 理 与 接 口 、 生 物 信 息 学 ; 邢 四 为( 1988-) , 男 , 硕 士 生 , 主 要 研 究 方 向 为 嵌 入 式 系 统 应 用三,在

5、数据管理功能上,云存储模式需要满足传统文件访问方式,同时能够支持海量数据管理并提供公共服务支撑功能,以方便云存储系统后台数据的维护 6 。基于上述特点,云存储模式整体架构自底向上依次是:数据存储层、数据管理层、数据服务层以及云端应用层。数据存储层包括底层的存储介质部署、计算机集群搭建以及设备虚拟化过程;数据管理层实现用户权限控制、数据安全等业务;数据服务层实现数据存储、共享和备份业务逻辑;云端应用层实现用户的定制业务 7。1.2 Hadoop 框 架 的 工 作 机 制Hadoop 为应用程序透明的提供了一组稳定可靠的接口。Hadoop 框架的主要组成部分是 Hadoop 分布式文件系统(HD

6、FS)和 MapReduce 的实现 8。HDFS 采用 Master/Slave 架构,一个 HDFS 集群由一个NameNode 节点和一组 DataNode 节点组成。NameNode 是一个中心服务器,负责管理文件系统的名字空间(NameSpace)以及客户端对文件的访问。在集群系统中,一般在一个节点上运行一个 DataNode,负责管理它所在节点上的数据存储,并负责处理文件系统客户端的读写请求,在 NameNode 的统一调度下进行数据块的创建、删除和复制。Hadoop 还实现了 Google 的 MapReduce 分布式计算模型,MapReduce 把应用程序的总任务分割成许多子

7、任务,每个子任务可以在任何集群节点(DataNode 节点,通常也作为计算节点)上并行处理。HDFS 创建了多份数据块(data blocks)的副本(Replicas) ,以保证各个子任务节点计算的可靠性(Reliability) 。由于采用了分布式文件系统和 MapReduce 模型,因此 Hadoop 框架具有高容错性及对数据读写的高吞吐率,能自动处理失败节点。1.3 HDFS 的 管 理 机 制HDFS(Hadoop Distributed File System)是 一个 运 行 在 普 通 硬 件 之 上 的 分 布 式 文 件 系 统 。集 群 包 括 NameNode、 Sec

8、ondary NameNode和 DataNode 三 个 部 分 9。 一 般 来 说 , 集 群 中有 一 台 作 为 NameNode, 负 责 整 个 系 统 元 数 据的 存 储 记 录 和 对 整 个 系 统 的 控 制 ; 一 台 机 器 作为 Secondary NameNode, 负 责 备 份NameNode 上 的 系 统 信 息 文 件 ; 其 余 的 机 器 全 部 作 为 图 1 HDFS 管 理 机 制DataNode, 负 责 存 储 用 户 数 据 , 并 在 NameNode 的 控 制 下 进 行 数 据 的 读 写 和 出 错 处 理 , 如 图 1 所

9、 示 。1.4 MapReduce 编 程 模 型MapReduce 就 是 “任 务 的 分 解 与 结 果 的 汇 总 ”。 Map 把 任 务 分 解 成 多 个 任 务 , Reduce 把 分 解 后 多 任 务处 理 的 结 果 汇 总 起 来 , 得 到 最 终 结 果 。 MapReduce 把 从 HDFS 中 读 取 的 待 处 理 的 海 量 数 据 分 解 成 许 多 小用 户 JobTrackerNameodMasterDatNodeSlv1Taskracker DatNodeSlv2Taskracker DatNodeSlv nTaskrackerSecondary

10、Name数 据 集 , 每 个 小 数 据 集 都 并 行 处 理 , 处 理 后 存 储 到 分 布 式 数 据 库 10。 MapReduce 数 据 处 理 流 程 如 图 2 所示 。s p l i t 0s p l i t 1s p l i t 2m a p ( )m a p ( )m a p ( )r e d u c e ( )r e d u c e ( ) p a r t 0p a r t 1I n p u t M a p p e r s M i d d l e R e s u l t R e d u c e r s O u t p u t图 2 MapReduce 数 据 处

11、理 流 程每 个 MapReduce 任 务 都 被 初 始 化 为 一 个 Job, 每 个 Job 又 可 以 分 为 两 个 阶 段 : map 阶 段 和 reduce 阶段 。 这 两 个 阶 段 分 别 用 两 个 函 数 表 示 , 即 map 函 数 和 reduce 函 数 。 map 函 数 接 收 一 个 形 式 的输 入 , 然 后 同 样 产 生 一 个 形 式 的 中 间 输 出 , Hadoop 函 数 接 收 一 个 如 形 式的 输 入 , 然 后 对 这 个 value 集 合 进 行 处 理 , 每 个 reduce 产 生 0 或 1 个 输 出 , r

12、educe 的 输 出 也 是 形 式 的 11。2. 云存储系统的设计与实现本 文 在 Hadoop 框架的基础上,运用 MapReduce 编程模型 12 13 14,设计并实现了云存储系统。2.1 系 统 架 构 设 计系 统 由 四 部 分 构 成 , 分 别 为 表 现 层 、 业 务 逻 辑 层 、 数 据 存 储层 、 基 础 设 施 层 , 系 统 框 架 如 图 3 所 示 。表 现 层 : 展 现 给 用 户 的 Web 界 面 。业 务 逻 辑 层 : 负 责 对 Hadoop 集 群 中 数 据 的 操 作 , 对 数 据 业务 的 逻 辑 处 理 。数 据 存 储 层

13、 : 由 数 据 库 、 HDFS 和 MapReduce 构 成 , 负 责 对数 据 管 理 与 分 配 任 务 , 为 系 统 提 供 分 布 式 计 算 和 存 储 。基 础 设 施 层 : 即 硬 件 基 础 设 施 , 主 要 包 括 磁 盘 、 服 务 器 等 。2.2 系 统 功 能 设 计系 统 功 能 设 计 包 括 普 通 用 户 管 理 、 管 理 员 管 理 和 平 台 管 理 三个 功 能 模 块 。 图 3 云 存 储 系 统 总 体 框 架 图普 通 用 户 管 理 : 包 括 创 建 、 查 看 目 录 , 上 传 、 下 载 和 删 除 自 己 的 数 据

14、文 件 , 修 改 密 码 等 功 能 。管 理 员 管 理 : 包 括 浏 览 DFS 目 录 文 件 , 创 建 、 管 理 普 通 用 户 的 身 份 信 息 , 管 理 普 通 用 户 上 传 的 文 件等 。平 台 管 理 : 包 括 服 务 器 信 息 管 理 , 故 障 监 控 和 报 警 管 理 。 监 控 系 统 运 行 中 出 现 的 故 障 , 通 过 手 机 短 信Web页 面普 通 用 户 管 理管 理 员 管 理平 台 管 理 等 HDFSMapReduc硬 盘 服 务 器数 据库表 现 层业 务 逻 辑 层数 据 存 储 层基 础 设 施 层方 式 报 警 , 及

15、 时 发 现 故 障 、 处 理 故 障 , 同 时 记 录 故 障 以 便 日 后 查 询 。2.3 Hadoop 集 群 部 署系 统 采 Hadoop 1.0.3 版 本 软 件 , 三 台 装 有 Centos6.0 的 机 器 , 一 台 做 NameNode, 另 外 两 台 做DataNode, 各 台 主 机 的 机 器 名 、 IP、 作 用 如 表 1 所 示 。表 1 主 机 机 器 名 、 IP 和 作 用机器名 IP 作用master 192.168.33.164 NameNode、master、jobTrackerslave1 192.168.33.221 Data

16、Node、slave、taskTrackerslave2 192.168.33.174 DataNode、slave、taskTracker部 署 步 骤 :(1) 创 建 用 户 : 为 了 操 作 的 方 便 , 在 所 有 机 器 上 创 建 相 同 用 户 名 和 相 同 密 码 的 用 户 。(2) 修 改 hosts: $vi /etc/hosts,在 hosts 中 添 加 所 有 主 机 机 器 名 和 相 应 的 IP。(3) 开 启 ssh 服 务 :在 线 安 装 openssh-server: $ yum install openssh-server(4) 建 立 ss

17、h 无 密 码 登 陆 :在 NameNode 上 实 现 无 密 码 登 陆 本 机 :1$ ssh-keygen t dsa P f /.ssh/id_dsa直 接 回 车 , 完 成 后 会 在 /.ssh/生 成 两 个 文 件 : id_dsa 和 id_dsa.pub.这 两 个 是 成 对 出 现 , 类 似 钥 匙和 锁 。 再 把 id_dsa.pub 追 加 到 授 权 key 里 面 : $ cat /.ssh/id_dsa.pub /.ssh/authorized_keys。实 现 NameNode 无 密 码 登 陆 其 他 DataNode:2把 NameNode

18、上 的 id_dsa.pub 文 件 追 加 到 dataNode 的 authorized_keys 内 。(5) 安 装 jdk1.7:安 装 后 在 环 境 变 量 中 添 加 JAVA_HOME 和 JRE_HOME, 每 台 机 器 的 java 环 境 最 好 一 致 。(6) 安 装 hadoop:把 Hadoop 的 安 装 路 径 添 加 到 环 境 变 量 /etc/profile 中 :1export HADOOP_HOME = /home/swxing/hadoop-1.0.3export PATH=$HADOOP_HOME/bin:$PATH在 conf/hadoop

19、-env.sh 中 配 置 JAVA 环 境 (NameNode 与 DataNode 的 配 置 相 同 ):2$gedit hadoop-env.sh$export JAVA_HOME=/usr/java/jdk1.7.0_05配 置 conf/masters 和 conf/slaves 文 件 : (只 在 NameNode 上 配 置 )3masters:192.168.33.164slaves: 192.168.33.221192.168.33.174配 置 conf/core-site.xml, conf/hdfs-site.xml 及 conf/mapred-site.xml(简

20、 单 配 置 , datanode 的 配 置 相 同 )4(7) 运 行 hadoop:进 入 hadoop-1.0.3/bin, 首 先 格 式 化 文 件 系 统 : $hadoop namenode format,然 后 启 动 hadoop: $start-all.sh2.4 核 心 代 码 实 现系统在实现过程中,主要解决的问题包括数据上传、数据下载和数据删除三个方面,具体通过调用Hadoop 的API 接口来实现,核心代码如下:上传模块核心代码:private static void UploadFile(String src, String dst) Configuration

21、 conf = new Configuration();try FileSystem hdfs = FileSystem.get(conf);InputStream in = new BufferedInputStream(new FileInputStream(localPath);/ 本地文件输入流OutputStream out = hdfs.create(new Path(dst);/ HDFS 路径的输出流抽象IOUtils.copyBytes(in, out, 4096, true);/ 利用 IOUtils 工具类实现上传 catch (IOException e) e.prin

22、tStackTrace();下载模块核心代码:private static void DownLoadFile(String src, String dst) Configuration conf = new Configuration();FileSystem hdfs = FileSystem.get(conf); / 创建一个文件系统实例FSDataInputStream in = hdfs.open(src);FSDataOutputStream out = new FileOutputStream(dst);byte ioBuffer = new byte1024; /设置缓冲区in

23、t readLen = in.read(ioBuffer);hdfs.close();删除模块核心代码:private static void DeleteFile(String src) Configuration conf = new Configuration();FileSystem hdfs = FileSystem.get(conf);hdfs.delete(new Path(src), true);3. 结束语本文通过对云存储的基本理论、HDFS 的系统架构等内容的介绍,为基于 HDFS 的云存储服务系统的开发实现奠定了理论基础并提供了一定的技术支持。最终,通过系统的分析与设计,

24、实现了基于 HDFS 的云存储系统,系统具有编程简化、安全可靠性高、开发成本低、易于实现等优点。参考文献:1 高 新 成 ,王 莉 利 .基 于 Hadoop 的 校 园 云 存 储 系 统 的 研 究 J.陕 西 理 工 学 院 学 报 ( 自 然 科 学 版 ) .2012,28(4)2 唐 箭 .云 存 储 系 统 的 分 析 与 应 用 研 究 J.电 脑 知 识 与 技 术 .2009,5(20):13-143 Cloud ComputingOL,http:/en.wikipedia.org/wiki/Cloud_computing.4 Derek Tankel. Scalabili

25、ty of Hadoop Distributed File SystemR. Yahoo developer work,2010.5 王 德 政 ,申 山 宏 ,周 宁 宁 .云 计 算 环 境 下 的 数 据 存 储 J.计 算 机 技 术 与 发 展 .2011,21(4)6 百 度 百 科 .云 计 算 EB/OL.http:/ 7 NAMJOSHI J,GUPTE A.Service Oriented Architecture for Cloud Based Travel Reservation Software as a Service. Proceedings of the2009

26、IEEE International Conference on Cloud Computing (CLOUD09),Sep21-25,20098 朱 珠 .基 于 Hadoop 的 海 量 数 据 处 理 模 型 研 究 和 应 用 D .北 京 :北 京 邮 电 大 学 ,2008:32-409 黄 晓 云 .基 于 HDFS 的 云 存 储 服 务 系 统 研 究 D .大 连 :大 连 海 事 大 学 ,2010:11-1410 Tom White. Hadoop: The Definitive Guide M. USA: OReilly Media, 2009.11 李 煜 民 ,章

27、 才 能 ,谢 杰 .云 计 算 环 境 下 的 数 据 存 储 J.电 脑 知 识 与 技 术 ,2010,6(5):1032-1034.12 多 雪 松 ,张 晶 ,高 强 .基 于 Hadoop 的 海 量 数 据 管 理 系 统 J.微 计 算 机 信 息 ,2010,26(05-1):202-20413 晏 强 ,张 晓 锋 ,丁 蕊 .云 存 储 技 术 研 究 J.计 算 机 与 信 息 技 术 .2011(12):22-2414 Apache. Hadoop On Demand. http:/hadoop.a-pache.org/common/docs/r0.17.2/hod.

28、html,2008Research on Cloud Data Storage Based on HDFS and its implementation.XING Siwei1, SONG Jie1, WANG Lei1(1.School of Computer Science and Technology, Anhui University, Hefei 230601,China)Abstract: According to the mass data storage problem, traditional methods usually need more servers to incr

29、ease computing speed and storage ability, while the hardware cost is very expensive and the storage efficiency is low The main purpose of this paper is to achieve a cloud storage system based on hadoop distributed file system. It aims to solve enterprises problem of massive data storage. Firstly, th

30、e paper expounds the theory of cloud storage. Secondly, the paper analyzes HDFS data management mechanism and MapReduce programming model. Finally, combining with the actual need, the paper has designed the cloud storage system based on Hadoop. This system can effectively solve issues in mass data storage management. This system is cheap, easily operated, fast and stable. Key words: Hadoop; HDFS; MapReduce; Cloud Storage; Distributed File System联 系 人 : 邢 四 为通 讯 地 址 : 安 徽 省 合 肥 市 肥 西 县 九 龙 路 111 号 安 徽 大 学 计 算 机 科 学 与 技 术 学 院 11 级 研 究 生 230601电 子 邮 箱 : , 联 系 电 话 : 13866682435

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。