专栏首页PPV课数据科学社区【技术】HDFS存储原理

【技术】HDFS存储原理

根据Maneesh Varshney的漫画改编,以简洁易懂的漫画形式讲解HDFS存储机制与运行原理,非常适合Hadoop/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的存放策略是将一个副本存放在本地机架节点上,另外两个副本放在不同机架的不同节点上。

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


本文转自京东大数据微信公众号。

本文分享自微信公众号 - PPV课数据科学社区(ppvke123)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-06-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大数据究竟是什么

    古语云:三分技术,七分数据,得数据者得天下。先不论谁说的,但是这句话的正确性已经不用去论证了。维克托·迈尔-舍恩伯格在《大数据时代》一书中举了百般例证,都是为了...

    小莹莹
  • 七种数据分析领域中最为人称道的降维方法

    近来由于数据记录和属性规模的急剧增长,大数据处理平台和并行数据分析算法也随之出现。于此同时,这也推动了数据降维处理的应用。实际上,数据量有时过犹不及。有时在数...

    小莹莹
  • 【推荐】数据安全是政务大数据开放的核心能力

    日前,克强总理主持召开的国务院常务会议通过了《关于促进大数据发展的行动纲要》,将大数据定位为推动创新创业及经济转型升级的战略性资源,明确政务信息及公共数据要互联...

    小莹莹
  • Hadoop之HDFS源码分析

    天策
  • 美图大数据平台架构实践

    如今大数据在各行业的应用越来越广泛:运营基于数据关注运营效果,产品基于数据分析关注转化率情况,开发基于数据衡量系统优化效果等。美图公司有美拍、美图秀秀、美颜相机...

    美图数据技术团队
  • mysql索引为啥要选择B+树 (下)

    有读者在 mysql索引为啥要选择B+树 (上) 上篇文章中留言总结了选择 B+ 树的原因,大体上说对了,今天我们再一起来看看具体的原因。

    谭小谭
  • redis数据分布

    我们知道redis官方说他是可以支持10万/每秒的并发量,但是如果我们的业务场景需要100万/每秒呢?

    小土豆Yuki
  • 三大支柱,决定未来数据质量项目成功

    导读:我们现在处在一个新的时代:商业成功取决于比以前更快的从更多的系统和用户中获取可信任的数据。要想在这个时代成功,你必须确保质量数据在更多的系统中传播流畅,...

    钱塘数据
  • 小时代里的大数据 认识并掌握才能更好驾驭它 | 大咖周语录

    数据猿导读 大数据作为正在形成的一种科学革命范式,也在逐步形成各种流派。在各行各业的精英人士中,他们的观点也代表了各自的价值观。那么,对于大数据他们是如何看待的...

    数据猿
  • 担心产业泡沫?金牌投资人章苏阳教你辨别泡沫中的“水”和“汽” | 大咖周语录

    数据猿导读 对于大数据的概念以及大数据在各行业的应用,每个人心中都有不同的看法。小编每周都会整理大数据牛人们的精彩观点,让你在最短的时间获得最精的思想荟萃。后续...

    数据猿

扫码关注云+社区

领取腾讯云代金券