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)
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)
相关文章推荐
- hadoop学习笔记五 -- hdfs原理
- hadoop学习笔记之--- HDFS原理学习
- hadoop学习笔记-HDFS原理
- Hadoop学习笔记(2)-hdfs原理
- hadoop学习笔记-HDFS原理
- Hadoop学习笔记(6)-简述分布式文件系统HDFS原理
- hadoop学习笔记-HDFS原理
- Hadoop学习笔记(一)——Hadoop体系结构
- hadoop学习笔记之HDFS
- 第125讲:Hadoop集群管理之SecondaryNamenode目录元数据结构详解及其内幕机制学习笔记
- Hadoop2.6.0学习笔记(九)文件的存储结构
- hadoop学习笔记3:shell下的hdfs操作
- Hadoop HDFS——Hadoop实战初级部分学习笔记
- 学习Hadoop第七课(HDFS架构原理)
- Hadoop 学习笔记 (十) hadoop2.2.0 生产环境部署 HDFS HA Federation 含Yarn部署
- hadoop学习(二)----HDFS简介及原理
- HDFS原理了解 (学习笔记)
- hadoop2.7.2学习笔记15-HDFS user guide
- HDFS学习笔记(8)mapreduce原理
- hadoop2.5.2学习及实践笔记(三)—— HDFS概念及体系结构