HDFS基本原理(Hadoop1.0)

        一、客户端发送写块请求

 

原理介绍:

1、  客户端向NameNode发送一个写块请求,NodeName接收到这个请求之后给客户端一个消息,就是客户端应该把数据写到哪个DataNode,客户端接着就把数据写到分配到的那个DataNode中。

2、  此时,不管客户端是否写数据成功,都写在edits日记中,此时edits中的数量+1,如果写入成功,则会在内存中添加相应的元数据信息(MetaData)

 

 

 

 

二、NameNode的更新原理

 

 

 

 

原理介绍:

1、  NameNode更新机制的触发。条件有两个:一个是时间,最大的时间间隔是3600秒;第二个是edits文件的大小,默认的情况下是当edits的文件大于64M时,而不管是否已经到达了最大时间间隔,都会强制更新fsimage(也就是一些元数据信息);

2、  当NameNode的更新机制触发时,此时会进入一个切换状态,即此时如果收到其他用户的写请求时,不会再把操作信息放入edits中,而是放入文件edits.new文件中,这是为了保持数据一致。

3、  SecondNameNode会从NameNode中下载两个文件,edits和fsimage,通过这两个文件会合成一个新的fsimage(这里叫fsiamge.ckpt)。

4、  当edits和fsimage的信息更新之后,会把最新的fsimage.ckpt发送到NameNode;

5、  此时fsimage.ckpt会替换原来的fsimage文件,此时会把edits文件删除,用edits.new文件替换,前面之所以先不删除edits文件是因为当SecondNameNode更新失败时,可以再次用到。

posted @ 2015-08-02 10:24  canye  阅读(270)  评论(0编辑  收藏  举报