www.hj8828.com 4

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

在Hadoop运算集群架构中,先分解任务,分工处理再汇总结果这些服务器依据用途可分成Master节点和Worker节点,Master负责分配任务,而Worker负责执行任务,如负责分派任务的操作,角色就像是Master节点。

  在Hadoop运算集群架构中,先分解任务,分工处理再汇总结果这些服务器依据用途可分成Master节点和Worker节点,Master负责分配任务,而Worker负责执行任务,如负责分派任务的操作,角色就像是Master节点。

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

Hadoop架构服务器角色分工

  Hadoop架构服务器角色分工

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

Hadoop运算集群中的服务器依用途分成Master节点和Worker节点。Master节点中安装了JobTracker、NameNode、TaskTracker和DataNode程序,但Worker节点只安装TaskTracker和DataNode。

  Hadoop运算集群中的服务器依用途分成Master节点和Worker节点。Master节点中安装了JobTracker、NameNode、TaskTracker和DataNode程序,但Worker节点只安装TaskTracker和DataNode。

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

www.hj8828.com 1

www.hj8828.com 2

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

另外在系统的运行架构上,最简单的Hadoop架构,可以分成上层的MapReduce运算层以及下层的HDFS数据层。

  另外在系统的运行架构上,最简单的Hadoop架构,可以分成上层的MapReduce运算层以及下层的HDFS数据层。

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

在Master节点的服务器中会执行两套程序,一个是负责安排MapReduce运算层任务的JobTracker,以及负责管理HDFS数据层的NameNode程序。而在Worker节点的服务器中也有两套程序,接受JobTracker指挥,负责执行运算层任务的是TaskTracker程序,而与NameNode对应的则是DataNode程序,负责执行数据读写动作,以及执行NameNode的副本策略。

www.hj8828.com,  在Master节点的服务器中会执行两套程序,一个是负责安排MapReduce运算层任务的JobTracker,以及负责管理HDFS数据层的NameNode程序。而在Worker节点的服务器中也有两套程序,接受JobTracker指挥,负责执行运算层任务的是TaskTracker程序,而与NameNode对应的则是DataNode程序,负责执行数据读写动作,以及执行NameNode的副本策略。

www.hj8828.com 3

在MapReduce运算层上,担任Master节点的服务器负责分配运算任务,
Master节点上的JobTracker程序会将
Map和Reduce程序的执行工作,指派给Worker服务器上的TaskTracker程序,由TaskTracker负责执行Map和Reduce工作,并将运算结果回复给Master节点上的JobTracker。

  在MapReduce运算层上,担任Master节点的服务器负责分配运算任务,
Master节点上的JobTracker程序会将
Map和Reduce程序的执行工作,指派给Worker服务器上的TaskTracker程序,由TaskTracker负责执行Map和Reduce工作,并将运算结果回复给Master节点上的JobTracker。

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

在HDFS数据层上,NameNode负责管理和维护HDFS的名称空间、并且控制文件的任何读写操作,同时NameNode会将要处理的数据切割成一个个文件区块(Block),每个区块是64MB,例如1GB的数据就会切割成16个文件区块。NameNode还会决定每一份文件区块要建立几个副本,一般来说,一个文件区块总共会复制成3份,并且会分散储存到3个不同Worker服务器的DataNode程序中管理,只要其中任何一份文件区块遗失或损坏,NameNode会自动寻找位于其他DataNode上的副本来回复,维持3份的副本策略。

  在HDFS数据层上,NameNode负责管理和维护HDFS的名称空间、并且控制文件的任何读写操作,同时NameNode会将要处理的数据切割成一个个文件区块(Block),每个区块是64MB,例如1GB的数据就会切割成16个文件区块。NameNode还会决定每一份文件区块要建立几个副本,一般来说,一个文件区块总共会复制成3份,并且会分散储存到3个不同Worker服务器的DataNode程序中管理,只要其中任何一份文件区块遗失或损坏,NameNode会自动寻找位于其他DataNode上的副本来回复,维持3份的副本策略。

www.hj8828.com 4