HDFS的结构

HDFS的体系框架是Master/Slave结构,一个典型的HDFS通常由单个NameNode和多个DataNode组成。NameNode是一个中心服务器,负责文件系统的名字空间的操作,比如打开、关闭、重命名文件或目录,它负责维护文件路径到数据块的映射,数据块到DataNode的映射,以及监控DataNode的心跳和维护数据块副本的个数。集群中的DataNode一般是一个节点一个,负责管理它所在节点上的存储。HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组DataNode上。DataNode负责处理文件系统客户端的读写请求。在NameNode的统一调度下进行数据块的创建、删除和复制。

所有对目录树的更新和文件名和数据块关系的修改,都必须能够持久化,文件在HDFS中存储图如图2:

图2  文件在HDFS中的存储图

HDFS涉及到NameNode、DataNode和客户端们之间的交互。本质上,客户端与NameNode通讯是通过获取或者修改文件的元数据,与 DataNode进行实际的I/O操作。如图3所示,在HDFS中有三个重要的角色:NameNode、DataNode和Client,其中Client就是需要获取分布式文件系统文件的应用程序。

这里通过三个操作来说明他们之间的交互关系

(l)文件写入。首先Client向NameNode发起文件写入的请求,NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。

(2)文件读取。Client向NameNode发起文件读取的请求,NameNode返回文件存储的DataNode的信息。Client根据返回的信息读取DataNode上的文件信息。

(3)文件Block复制。NameNode发现部分文件的Block不符合最小复制数或者部分DataNode失效,通知DataNode相互复制Block。DataNode收到通知后开始直接相互复制。

图3  HDFS结构图

更多精彩内容请关注:http://bbs.superwu.cn

关注超人学院微信二维码:

时间: 2024-10-17 14:14:34

HDFS的结构的相关文章

HDFS源代码结构

了解了HDFS体系结构中的名字节点.数据节点和客户端以后,我们来分析HDFS实现的源代码结构.HDFS源代码都在org.apache.hadoop.hdfs包下,其结构如图6-3所示. HDFS的源代码分布在I6个目录下,它们可以分为如下四类. 1.基础包 包括工具和安全包.其中,hdfs.util包含了一些HDFS实现需要的辅助数据结构:hdfs.security.token.hlock和hdfs.security.token.delegation结合Hadaop的安全框架,提供了安全访问HD

Hadoop读书笔记(四)HDFS体系结构

Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 Hadoop读书笔记(二)HDFS的shell操作:http://blog.csdn.net/caicongyang/article/details/41253927 Hadoop读书笔记(三)Java API操作HDFS:http://blog.csdn.net/caicongyang/article/details/41290955

Hadoop学习笔记_7_分布式文件系统HDFS --DataNode体系结构

分布式文件系统HDFS --DataNode体系结构 1.概述 DataNode作用:提供真实文件数据的存储服务. 文件块(block):最基本的存储单位[沿用的Linux操作系统地概念].对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block. 与Linux操作系统不同的是,一旦上传了一个小于Block大小的文件,则该文件会占用实际文件大小的空间. 2.进入hdfs-default.xml <prope

王家林的云计算分布式大数据Hadoop征服之旅:HDFS&amp;MapReduce&amp;HBase&amp;Hive&amp;集群管理

一:课程简介: 作为云计算实现规范和实施标准的Hadoop恰逢其时的应运而生,使用Hadoop用户可以在不了解分布式底层细节的情况下开发出分布式程序,从而可以使用众多廉价的计算设备的集群的威力来高速的运算和存储,而且Hadoop的运算和存储是可靠的.高效,的.可伸缩的,能够使用普通的社区服务器出来PB级别的数据,是分布式大数据处理的存储的理想选择. 本课程会助你深入浅出的掌握Hadoop开发(包括HDFS.MapReduce.HBase.Hive等),并且在此基础上掌握Hadoop集群的配置.维

Hadoop自学笔记(二)HDFS简单介绍

1. HDFS Architecture 一种Master-Slave结构.包括Name Node, Secondary Name Node,Data Node Job Tracker, Task Tracker.JobTrackers: 控制全部的Task Trackers .这两个Tracker将会在MapReduce课程里面具体介绍.以下具体说明HDFS的结构及其功能. Name Node:控制全部的Data Node. 存储了整个文件系统的信息. 全部新建文件,删除,拷贝等,都会在此更新

深入浅出Hadoop实战开发(HDFS实战图片、MapReduce、HBase实战微博、Hive应用)

Hadoop是什么,为什么要学习Hadoop?     Hadoop是一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上.而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据

HDFS分布式文件系统资源管理器开发总结

  HDFS,全称Hadoop分布式文件系统,作为Hadoop生态技术圈底层的关键技术之一,被设计成适合运行在通用硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式文件系统的区别也是很明显的.HDFS是一个高度容错性的系统,适合部署在连接的机器上.HDFS能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用. 笔者本人接触研究HDFS也有半年之久了,了解了HDFS Java API接口后,就一直设想着设计一个类似于Windows操作系统上的资源管理器一样的

第六章 HDFS概述

6.1.2 HDFS体系结构 HDFS采用主从结构,NameNode(文件系统管理者,负责命名空间,集群配置,数据块复制), DataNode(文件存储的基本单元,以数据块形式保存文件内容和数据块的数据校验信息,执行底层数据块IO操作), Client(和名字节点,数据节点通信,访问HDFS文件系统,操作文件), SecondaryNameNode 1.数据块 Linux的Ext3块默认的大小4096字节,HDFS块默认64M,副本数为3,数据块的好处:文件保存在不同的磁盘上,简化存储子系统,方

HDFS原理概念扫盲

1.概述 hdfs文件系统主要设计为了存储大文件的文件系统:如果有个TB级别的文件,我们该怎么存储呢?分布式文件系统未出现的时候,一个文件只能存储在个服务器上,可想而知,单个服务器根本就存储不了这么大的文件:退而求其次,就算一个服务器可以存储这么大的文件,你如果想打开这个文件,效率会高吗 hdfs的出现就是为了解决上面的问题 hdfs为了满足大文件的存储和可读性,对数据进行切成多个小块进行存储,同时为了保证数据的可靠性,又对每个小块数据做复制,然后分别存储到多个节点中 hdfs2.7.3后,默认