【转】【漫画解读】HDFS存储原理

 根据Maneesh Varshney的漫画改编,以简洁易懂的漫画形式讲解HDFS存储机制与运行原理。

  一、角色出演

  

  如上图所示,HDFS存储相关角色与功能如下:

  Client:客户端,系统使用者,调用HDFS API操作文件;与NN交互获取文件元数据;与DN交互进行数据读写。

  Namenode:元数据节点,是系统唯一的管理者。负责元数据的管理;与client交互进行提供元数据查询;分配数据存储节点等。

  Datanode:数据存储节点,负责数据块的存储与冗余备份;执行数据块的读写操作等。

  二、写入数据

  1、发送写数据请求

  

  HDFS中的存储单元是block。文件通常被分成64或128M一块的数据块进行存储。与普通文件系统不同的是,在HDFS中,如果一个文件大小小于一个数据块的大小,它是不需要占用整个数据块的存储空间的。

  2、文件切分

  

  3、DN分配

  

  

  4、数据写入

  

  

  5、完成写入

  

  

  

  6、角色定位

  

  三、HDFS读文件

  1、用户需求

  

  HDFS采用的是“一次写入多次读取”的文件访问模型。一个文件经过创建、写入和关闭之后就不需要改变。这一假设简化了数据一致性问题,并且使高吞吐量的数据访问成为可能。

  2、先联系元数据节点

  

  

  

  3、下载数据

  

  前文提到在写数据过程中,数据存储已经按照客户端与DataNode节点之间的距离进行了排序,距客户端越近的DataNode节点被放在最前面,客户端会优先从本地读取该数据块。

  4、思考

  

  四、HDFS容错机制——第一部分:故障类型及监测方法

  1、三类故障

  (1)第一类:节点失败

  

  (2)第二类:网络故障

  

  (3)第三类:数据损坏(脏数据)

  

  2、故障监测机制

  (1)节点失败监测机制

  

  

  

  (2)通信故障监测机制

  

  (3)数据错误监测机制

  

  

  

  3、回顾:心跳信息与数据块报告

  

  HDFS存储理念是以最少的钱买最烂的机器并实现最安全、难度高的分布式文件系统(高容错性低成本),从上可以看出,HDFS认为机器故障是种常态,所以在设计时充分考虑到单个机器故障,单个磁盘故障,单个文件丢失等情况。

  五、容错第二部分:读写容错

  1、写容错

  

  

  

  

  2、读容错

  

  

  六、容错第三部分:数据节点(DN)失效

  

  

  

  

  

  

  七、备份规则

  

  1、机架与数据节点

  

  2、副本放置策略

  

  数据块的第一个副本优先放在写入数据块的客户端所在的节点上,但是如果这个客户端上的数据节点空间不足或者是当前负载过重,则应该从该数据节点所在的机架中选择一个合适的数据节点作为本地节点。

  如果客户端上没有一个数据节点的话,则从整个集群中随机选择一个合适的数据节点作为此时这个数据块的本地节点。

  

  HDFS的存放策略是将一个副本存放在本地机架节点上,另外两个副本放在不同机架的不同节点上。

  这样集群可在完全失去某一机架的情况下还能存活。同时,这种策略减少了机架间的数据传输,提高了写操作的效率,因为数据块只存放在两个不同的机架上,减少了读取数据时需要的网络传输总带宽。这样在一定程度上兼顾了数据安全和网络传输的开销。

  

  

  via:京东大数据

时间: 2024-08-01 10:06:58

【转】【漫画解读】HDFS存储原理的相关文章

【漫画解读】HDFS存储原理(转载)

转载自:http://www.cnblogs.com/itboys/p/5497698.html 角色出演 如上图所示,HDFS存储相关角色与功能如下: Client:客户端,系统使用者,调用HDFS API操作文件;与NN交互获取文件元数据;与DN交互进行数据读写. Namenode:元数据节点,是系统唯一的管理者.负责元数据的管理;与client交互进行提供元数据查询;分配数据存储节点等. Datanode:数据存储节点,负责数据块的存储与冗余备份;执行数据块的读写操作等. 二.写入数据 1

HDFS 核心原理

HDFS 核心原理 2016-01-11 杜亦舒 HDFS(Hadoop Distribute File System)是一个分布式文件系统 文件系统是操作系统提供的磁盘空间管理服务,只需要我们指定把文件放到哪儿,从哪个路径读取文件句可以了,不用关心文件在磁盘上是如何存放的 当文件所需空间大于本机磁盘空间时,如何处理呢? 一是加磁盘,但加到一定程度就有限制了 二是加机器,用远程共享目录的方式提供网络化的存储,这种方式可以理解为分布式文件系统的雏形,可以把不同文件放入不同的机器中,空间不足了可以继

Hbase数据存储原理与读写详解

1.HBase的数据存储原理 一个HRegionServer会负责管理很多个region 一个*region包含很多个store 一个列族就划分成一个store** 如果一个表中只有1个列族,那么每一个region中只有一个store 如果一个表中有N个列族,那么每一个region中有N个store 一个store里面只有一个memstore memstore是一块内存区域,写入的数据会先写入memstore进行缓冲,然后再把数据刷到磁盘 一个store里面有很多个StoreFile, 最后数据

Exchange Server 运维管理02:邮箱数据库存储原理

重申一下,出此系列文章的目的是为了加强运维管理的能力,也就是说不是部署或者是常规配置,这就需要掌握一些基本的理论知识.如果有朋友需要了解Exchange的部署或者是基本操作,可以参考其他的资源,也可以看我之前的Exchange系列文章. 本文将了解一下Exchage 2010数据库文件的存储原理,可能Exchange部署配置完成后,客户很少去关心底层数据库文件的存储格式,只要DAG副本能正常复制,用户邮箱正常使用就可以了,当然,这是理想状态,但万一数据库发生故障需要对数据库进行修复或者是还原时候

flash存储原理

norflash 带有 SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内容每一字节:nandflash器件使用复杂的IO口串行的存取数据,读写操作采用512字节的块(也就是读/写某个字节,必须从其所在的块起始位置开始读/写),这一点有点像硬盘管理类操作,很自然地,基于nandlflash的存储器就可以取代硬盘或其它块设备. 一.半导体存储设备的原理 目前市面上出现了大量的便携式存储设备,这些设备大部分是以半导体芯片为存储介质的.采用半导体存储介质,可以把体积变的很小,便于携带:与硬盘之

硬盘的存储原理和内部架构

本来想写个文件系统的专题,结果发现对硬盘的内部架构和存储原理还是比较模糊,因为不了解“一点”硬盘的存储原理对文件系统的认识老是感觉镜花水月,不踏实.经过搜集整理资料就由了本文的问世.借用Bean_lee兄一句话:成果和荣耀归于前辈. 首先,让我们看一下硬盘的发展史: 1956年9月13日,IBM的IBM 350 RAMAC(Random Access Method of Accounting and Control)是现代硬盘的雏形,整个硬盘需要50个直径为24英寸表面涂有磁浆的盘片,它相当于两

ValueStack和OGNL达到Struts2形式的数据存储原理

(1)最近学习struts相框,我们在快乐struts强大.为了便于使用转发,但不了解详细的内部数据存储: (2)网上找了很多关于struts数据存储的原理,但我还没有找到一个具体的解释,本书上找到了 ValueStack和OGNL实现Struts2表单数据的存储原理 特分享给大家! (3)下面是部分截图:解说了关于struts框架中数据表单等的存储! watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGxnZW4xNTczODc=/font/5a6L5

Memcache启动&存储原理&集群

一. windows下安装启动 首先将memcache的bin文件夹增加到Path环境变量中.方便后面使用命令: 然后运行 memcached –dinstall 命令安装memcache的服务: 然后去计算进的服务页面能够看到已安装成功: 启动memcache的后台服务程序: 在后台服务处看到memcache的后台服务已启动: 然后运行.telnet 127.0.0.111211来打开Telnetclient: 结果发现没有开启Telnet的功能: 于是在"启动或关闭Windows功能&quo

ValueStack和OGNL实现Struts2表单数据的存储原理

(1)最近学习了struts框架,我们愉悦于struts的强大,方便转发器的使用,但是却不了解内部数据的具体存储: (2)在网上找了很多关于struts数据存储的原理,但是一直没有找到一个详细解说的,偶尔在一本书上找到了 ValueStack和OGNL实现Struts2表单数据的存储原理 特分享给大家! (3)以下是部分截图:讲解了关于struts框架中数据表单等的存储! 感觉这本书讲解的确实很好!需要的回复油箱地址发给你们!