NameNode(如下简称NN)的工做机制:缓存
一、用户上传数据的操做保存内存缓存中,同时往edits.log文件写入网络
二、edits.log文件是一个临时的日志文件,且随着edits.log文件达到必定大小以后会将数据写入到另外一个edits.log2文件,所以会产生多个edits.log小文件异步
三、多个edits.log小文件经过SecondaryNameNode(如下简称SN)节点最终保存在本地的fsimage文件中的spa
四、NN每隔一段时间向SN发送checkpoint请求(fsimage和edits.log的合并)日志
五、SN从NN上下载fsimage和edits.log文件,而后请求edits.log文件更改文件名为edits.newip
六、SN将fsimage和edits.log在内存合并运算、整合,生成新的fsimage.checkpoint,通知NN内存
七、NN接到通知后从SN下载fsimage.checkpointit
八、NN将fsimage.checkpoint和edits.new文件改回原来的名字pip
DataNode(如下简称DN)的副本生成机制:下载
DN采用pipeline(管道)机制对数据进行副本的复制,客户端从提交到DN时只有一个副本,DN根据NN传来的各个主机造成一个管道,一旦有数据往DN的第一个节点传输数据时,DN就会往管道内的其余DN节点异步经过网络复制数据,只有当全部节点拷贝完成,这个管道才算成功,不然DN会向NN通知复制副本失败,NN接收到DN失败请求,会根据拷贝好的成功的节点和失败的节点作一个调整,从新造成新的管道(例如:有3个节点在传输,假如3个节点传输失败,这个管道就失败了,NN在从新选择的时候会将传输成功的第2个节点与其余非原来第3个节点的节点再次造成管理进行副本的复制)