1.名词

  NameNode、DataNode机架、Client、File、Block、Package

2.组件间的关系:

 

  2.1.机架通过交换机相连,HDFS假设:在同一个机架之间传输数据比机架间传输数据快。

 

  2.2.NameNodeDataNode指实现不同功能的服务器。NN只用一台,DN需要若干台。

 

  2.3.一个FileHDFS中按照Block存储,冗余,一般为3份(可配置)。一份位于NN机架上,另外两份位于相同但不同于NN的机架上。即,1T的数据,需要3T的物理存储空间,3T的网络流量。

  2.4.NN,管理客户端读写请求,管理HDFS命名空间,管理数据块映射;DN,以Block为单位存储数据,Blcok大小为64M(可配置)

3.写:

 

  举例说明,Client有一个100M的文件要写入HDFS系统,HDFS6台服务器,一个交换机组成,其中一个服务器用作NN5个服务器用作DN,名称为Host12345,流程如下:

 

  1.ClinetFile分为两个BlockBlock164M)、Block2(36M)

 

  2.Client通知NN,发出写文件请求

 

  3.NN记录分配Block信息,并返回可用的DN

 

  Block1: host2,host1,host3

 

  Block2: host7,host8,host4

 

 

 

  NN分配Block映射时,按照以下原则:

 

  第一个副本位于同NN的机架上,第二个副本位于不同于第一个副本的机架上,第三个副本位于同于第二个副本的机架但不同的服务器上

 

  4.ClientBlock1按照64K为单位,分成1024Package,向Host2发送第一个Package

 

  5.Host2Host1发送第一个PackageClientHost2发送第二个Package

 

  6.Host1Host3发送第一个PackageClientHost2发送第三个Package,Host2Host1发送第二个Package

 

  7.如上过程,直到Block1发送完成。Block发送完成后,Host213NN发送消息表明数据传输完成,Host2Client发送消息表明数据传输完成

 

  8.ClientNN发送消息表明Block1发送完成

 

  9.如上过程,开始发送Block2

 

 

 

  这个过程中,NNDN通过心跳信息通信,心跳信息中包含传输的完成进度情况,DN是否活着。如果DN死了,将分配给DN的数据放到其他的DN上去。3DN的选择原则可以看出,如果一个DN死了,不能读取数据时,可以从同机架上的DN读取数据;一个机架死了,可以从另外一个机架上读取数据。

(图片来源:http://www.cnblogs.com/laov/p/3434917.html)

 

 

 

posted on 2014-03-10 21:22  onesteng  阅读(362)  评论(0编辑  收藏  举报