基于Hadoop的校园云存储系统的实现研究

基于Hadoop的校园云存储系统的实现研究

服务器使用Linux操作系统,采用MapReduce编程算法实现并行处理。

HDFS(Hadoop Distributed File System)是一个运行在普通硬件之上的分布式文件系统。HDFS系统采用Master/Slave框架,一个HDFS集群系统是由一个Master和多个Slaver构成。前者叫做名字节点(NameNode),是一个中心服务器负责元数据的管理工作,主要包括文件系统的名字空间管理和客户机对文件的访问操作。后者叫做数据节点(DataNode),在集群系统中一般一个节点是由一个DataNode构成的,主要负责对节点上它们附带的存储进行管理。

HDFS系统中文件的目录结构独立存储在NameNode上,对于具体的文件数据来说,一个文件数据其实被拆分成若干block,这些block冗余存储在DataNode集合数据里。NameNode负责执行文件系统的Namespace管理工作,主要包括关闭,打开和重命名数据文件和目录等操作,同时负责建立blockDataNode节点的映射关系。客户机的读写需求是由DataNode节点响应完成的,同时DataNode节点在NameNode的统一指挥下进行Block的创建,删除和复制等操作。

MapReduce编程模型是一种编程模型,是云计算的核心计算模式,用于大规模数据集的并行计算。MapReduce借用了函数式编程的思想,把海量数据集的常见操作抽象为Map(映射)和Reduce(化简)两种集合操作。通过Map函数将被分割后数据映射成不同的区块,然后由计算机集群对分配的数据进行分布式运算处理,再由Reduce函数对数据结果进行统一汇整,最后输出用户想要的数据结果。MapReduce的软件实现是指定一个Map函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

基于Hadoop的校园云存储系统的实现研究_第1张图片

Master包括NameNodeJobTracker,Slaves包括DataNodesTaskTrackers.HDFS的工作主要由NameNodeDataNodes共同完成,MapReduce的工作主要由JobTrackerTaskTrackers共同完成。模型工作流程:服务控制集群SCCService Controller Cluster)主要负责对用户应用请求进行接收,并根据用户的请求完成应答工作。存储节点集群SNCStorage Node Cluster)主要负责处理数据资源的存取工作。JobTracker可以运行在集群系统中的每一台计算机上,主要完成管理和调度其它计算机上的TaskTracker。不同的是TaskTracker必须运行在数据存储节点的DataNode上,主要完成执行任务工作。JobTracker负责将每一个MapReduce任务分配给空闲的TaskTracker处理,完成对每个数据文件并行计算处理任务,同时将每个任务运行完成的情况进行监控。当其中一个TaskTracker发生故障时,JobTracker会主动将其负责的任务转交给另外一个空闲的TaskTracker重新执行完成这个任务。用户本身不直接通过Hadoop架构进行读写数据,这由可以避免大量的读写操作造成的系统拥塞。当用户通过Hadoop架构把信息传给SCC后,将直接与存储节点进行交互,同时完成数据读取操作。

基于Hadoop的校园云存储系统的实现研究_第2张图片

基于Hadoop的校园云存储系统的实现研究_第3张图片基于Hadoop的校园云存储系统的实现研究_第4张图片

系统采用Hadoop软件,7PC,其中一台为Masternamenode(集群主节点);另外六台为Slave, datanode(从节点)

集群部署步骤:

(1). 集群配置SSH,实现机器间免密码登陆。在每台机器上生成ssh密钥,然后交换公钥,将namenode的公钥拷贝到每台datanode,这样互相访问就不需要密码了。

(2). 在每台机器上安装JDK,配置java环境。

(3). 安装配置hadoop

(4). 启动hadoop服务。

(5). 安装eclipse,搭建集成开发环境。

 

 

你可能感兴趣的:(基于Hadoop的校园云存储系统的实现研究)