当前位置:网站首页 / 大数据 / 正文

「学习笔记」深入理解Hadoop HDFS的写入&读取机制

时间:2017年05月22日 | 作者 : 刘相涛 | 分类 : 大数据 | 浏览: 510次 | 评论 4

  博主按:要理解以下内容,需要掌握nameNode,datanode、元数据等概念及HDFS的基本原理。HDFS(Hadoop Distribute File System)是一个分布式文件系统,是Hadoop的重要成员。

  一、HDFS数据写入机制

  向HDFS中写入文件时,是按照块儿为单位的,Client会根据配置中设置的块儿的大小把目标文件切为多块,例如文件是300M ,配置中块大小值为128M,那么就分为3块儿。

  具体写入流程:

  (1)Client向Namenode发请求,说想要上传文件

  (2)NameNode会检查目标文件是否存在、父目录是否存在,检查没有问题后返回确认信息

  (3)Client再发请求,问第一个block应该传到哪些DataNode上

  (4)NameNode经过衡量,返回3个可用的DataNode(A,B,C)

  (5)Client与A建立连接,A与B建立连接,B与C建立连接,形成一个Pipeline

  (6)传输管道建立完成后,Client开始向A发送数据包,此数据包会经过管道一次传递到B和C

  (7)当第一个block的数据都传完以后,client再向NameNode请求第二个block上传到哪些DataNode,然后建立传输管道发送数据

  就这样,直到Client把文件全部上传完成

  二、HDFS数据读取机制

  (1)Client把要读取的文件路径发给Namenode,查询元数据,找到文件块所在的DataNode服务器

  (2)Client知道了文件包含哪几块儿、每一块儿在哪些DataNode上,就选择那些离自己近的DataNode(在同一机房,如果有多个离着近的,就随机选择),请求建立Socket流从DataNode获取数据

  (3)Client接收数据包,先本地缓存,然后写入目标文件直到文件读取完成

  三、NameNode机制

  通过对HDFS读写流程的了解,可以发现NameNode是一个很重要的部分,它记录着整个HDFS系统的元数据,这些元数据是需要持久化的,要保存到文件中。

  NameNode还要承受巨大的访问量,Client读写文件时都需要请求NameNode,写文件时要修改元数据,读文件时要查询元数据。

  为了提高效率,NameNode便将元数据加载到内存中,每次修改时,直接修改内存,而不是直接修改文件,同时会记录下操作日志,供后期修改文件时使用。

  这样,NameNode对数据的管理就涉及到了3种存储形式:

  1. 内存数据

  2. 元数据文件

  3. 操作日志文件

  NameNode需要定期对元数据文件和日志文件进行整合,以保证文件中数据是新的,但这个过程很消耗性能,NameNode需要快速地响应Client的大量请求,很难去完成文件整合操作,这时就引入了一个小助手SecondNameNode。

  SecondNameNode会定期从NameNode中下载元数据文件和操作日志,进行整合,形成新的数据文件,然后传回NameNode,并替换掉之前的旧文件。

  SecondNameNode是NameNode的好帮手,替NameNode完成了这个重体力活儿,并且还可以作为NameNode的一个防灾备份,当NameNode数据丢失时,SecondNameNode上有最近一次整理好的数据文件,可以传给NameNode进行加载,这样可以保证最少的数据丢失。

blob.png

推荐您阅读更多有关于“大数据Hadoop HDFS,”的文章

猜你喜欢

已有4位网友发表了看法:

1#QueenslandAssignment  2017-05-23 17:54:05 回复该评论
楼主的主题很好,我很喜欢。
2#以太坊  2017-05-23 15:08:39 回复该评论
没有留言板,就在这反馈点用户体验,标签那个球状,看着挺花哨,但一点都不实用,鼠标放上乱跑,透明度还高,看不清哪个是哪个,估计你是在秀技术(开个玩笑)
2#刘相涛  2017-05-23 15:24:41 回复该评论
感谢你的建议,已经调整了,欢迎提意见
2#以太坊  2017-05-23 15:32:22 回复该评论
现在很漂亮,果然大神,调整个效果就是分分钟的事。

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

名言警句
«   2018年10月   »
1234567
891011121314
15161718192021
22232425262728
293031
最近发表
随机文章
友情链接
您的鼓励,我的动力
  • 我是IT客