您的位置:首页 > 运维架构

Hadoop学习笔记-HDFS结构及原理

2014-03-10 21:22 351 查看
1.名词

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

2.组件间的关系:

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

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

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

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

3.写:

  举例说明,Client有一个100M的文件要写入HDFS系统,HDFS由6台服务器,一个交换机组成,其中一个服务器用作NN,5个服务器用作DN,名称为Host1、2、3、4、5,流程如下:

  1.Clinet将File分为两个Block,Block1(64M)、Block2(36M)

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

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

  Block1: host2,host1,host3

  Block2: host7,host8,host4

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

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

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

  5.Host2向Host1发送第一个Package,Client向Host2发送第二个Package;

  6.Host1向Host3发送第一个Package,Client向Host2发送第三个Package,Host2向Host1发送第二个Package;

  7.如上过程,直到Block1发送完成。Block发送完成后,Host2、1、3向NN发送消息表明数据传输完成,Host2向Client发送消息表明数据传输完成

  8.Client向NN发送消息表明Block1发送完成

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

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



(图片来源:http://www.cnblogs.com/laov/p/3434917.html)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: