hadoop集群HDFS读写流程图与HDFS元数据管理机制

导读:本篇文章讲解 hadoop集群HDFS读写流程图与HDFS元数据管理机制,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

hadoop集群:HDFS读写流程图与HDFS元数据管理机制 1,HDFS读流程 HDFS读流程

  1. 客户端通过Distributed FileSystem向NameNode请求下载文件。
  2. NameNode通过查询元数据,找到文件块所在的DataNode地址,并将该文件元数据返回给客户端。
  3. 客户端根据从namenode获得的元数据,挑选一台DataNode(就近原则,然后随机)服务器,依次请求读取块数据。
  4. DataNode开始依次将块数据传输给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。
  5. 客户端以Packet为单位接收,先在本地缓存,待该文件的所有块信息皆返回后,合并块信息,并写入目标文件。

2,HDFS写流程 HDFS写流程

  1. 客户端通过Distributed FileSystem模块向NameNode请求上传文件(文件名),NameNode检查目标文件是否已存在,父目录是否存在。
  2. NameNode向客户端响应,该文件是否可以上传。
  3. 客户端请求向namenode请求上传第一个 Block,上传到哪些DataNode服务器上。
  4. NameNode向客户端返回3个DataNode节点,分别为dn1、dn2、dn3(这里默认三个副本,根据副本数返回对应的DataNode数)。
  5. 客户端通过FSDataOutputStream模块向dn1请求上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。
  6. dn3、dn2、dn1逐级应答客户端,确认可以上传该块数据。
  7. 客户端开始往dn1上传第一个Block(先从磁盘读取数据放到一个本地内存缓存),以Packet为单位,dn1收到一个Packet就会传给dn2,dn2传给dn3;dn1每传一个packet后,会放入一个确认队列等待确认。
  8. 当一个Block传输完成之后,客户端再次请求NameNode上传第二个Block(重复执行3-7步),后续块依次类推

读写注意点: HDFS文件系统本身并不具备拆分文件和合并文件的功能,是由客户端来执行的。 由客户端读取磁盘中的文件,并在本地内存中根据块大小对文件进行合理的拆分成块; 也同样在本地内存中,对块进行合并,再写入磁盘的文件中。

3,HDFS元数据管理机制 HDFS元数据管理机制 第一阶段:NameNode启动 第一次启动NameNode格式化后,创建Fsimage和Edits文件。如果不是第一次启动,直接加 载编辑日志和镜像文件到内存。 客户端对元数据进行增删改的请求。 NameNode记录操作日志,更新滚动日志。 NameNode在内存中对数据进行增删改。 第二阶段:Secondary NameNode工作 Secondary NameNode询问NameNode是否需要CheckPoint。直接带回NameNode是否执 行检查点操作结果。 Secondary NameNode请求执行CheckPoint。 NameNode滚动正在写的Edits日志。 将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode。 Secondary NameNode加载编辑日志和镜像文件到内存,并合并。 生成新的镜像文件fsimage.chkpoint。 拷贝fsimage.chkpoint到NameNode。 NameNode将fsimage.chkpoint重新命名成fsimage。

Fsimage文件:是namenode中关于元数据的镜像,一般称为检查点,这里包含了HDFS文件系统所有目录以及文件相关信息(Block数量,副本数量,权限等信息) Edits文件 :存储了客户端对HDFS文件系统所有的更新操作记录,Client对HDFS文件系统所有的更新操作都会被记录到Edits文件中(不包括查询操作) seen_txid:该文件是保存了一个数字,数字对应着最后一个Edits文件名的数字 VERSION:该文件记录namenode的一些版本号信息,比如:CusterId,namespaceID等

Edits文件内容

  1. 基本语法 hdfs oev -p 文件类型 -i编辑日志 -o 转换后文件输出路径

hdfs oev -p XML -i edits_0000000000000000266- 0000000000000000267 -o /opt/ouyangtao/servers/hadoop-2.9.2/edits.xml cat /opt/ouyangtao/servers/hadoop-2.9.2/edits.xml

FSImage文件 hdfs oiv -p 文件类型(xml) -i 镜像文件 -o 转换后文件输出路径 hdfs oiv -p XML -i fsimage_0000000000000000265 -o /opt/ouyangtao/servers/fsimage.xml

checkpoint周期 [hdfs-default.xml]

dfs.namenode.checkpoint.period 3600
dfs.namenode.checkpoint.txns 1000000 操作动作次数 dfs.namenode.checkpoint.check.period 60 1分钟检查一次操作次数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2115.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!