图解HDFS读写文件机制

HDFS写文件流程

在这里插入图片描述
关键点:

  1. hadoop2.x版本默认块大小为128M,所以预处理文件时,对200M的文件分块就是分成128M和72M。
  2. 第二步前,namenode需要根据client传递过来的消息来判断是否可以写文件,判断依据有是否存在目录,是否已存在文件等。
  3. namenode选取datanode时可以遵循机架感知策略来选择机器。默认情况没有开启,是随机选择机器。如果需要开启,需要在hadoop-site.xml文件添加,value指定一个可执行程序,输入为datenode,输出为机架。需要人为编写,一般策略是第一个副本放在一个机架,第二个副本放在和每一个副本同一个机架的机器上,第三个副本放在另一个机架的机器上。
  4. block传输完毕后,DataNode通知NameNode是为了让NameNode回滚日志,记录更新。

hdfs读数据流程

在这里插入图片描述

关键点:

  1. 第一步请求下载文件时,namenode会判断你的用户是否有可读权限,指定路径是否有文件。
  2. client向datanode读数据时,是一块一块读的,属于串行读取。
  3. 当dn1宕机了,namenode会返回dn4给client去读取,如果dn4也宕机了,namenode会把元数据复制一份到另一台datanode。

猜你喜欢

转载自blog.csdn.net/weixin_37581297/article/details/84633121
今日推荐