hdfs的读写流程

这篇具有很好参考价值的文章主要介绍了hdfs的读写流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

hdfs的写入流程

hdfs的读写流程,# hdfs,hadoop

1.client发起文件上传请求,通过rpc与namenode建立通讯,namenode检查目标文件是否已经存在,父目录是否存在,返回是否可以上传

2.client请求第一个block该传输到哪些datanode服务器上

3.namenode根据配置文件中指定的备份数量及副本放置策略进行文件分配,返回可用DataNode地址,如:a,b,c

4.client请求3台DataNode中的一台A上传数据(本质是一个rpc调用,建立pipeline),A收到请求会继续调动B,然后B调用C,将整个pipeline建立完成,后主机返回client

5.client开始往A上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet会放入一个应答队列等待应答

6.数据被分割成一个个packet数据包在pipeline上一次传输,在pipeline反方向上,逐个发送ack(ack应答机制),最终由皮盆里呢中第一个DataNode节点A将pipeline ack发送给client;

7.当一个block传输完成之后,client在此请求namenode上传到第二个blocked到服务器

hdfs的读取流程

hdfs的读写流程,# hdfs,hadoop

1.client向namenode发起rpc请求,来确定请求文件block所在的位置

2.namenode会视情况返回文件的部分或者全部block列表,对于每个block,namenode都会返回含有该block副本的datanode地址

3.这些返回的DataNode地址,会按照集群拓扑机构得出DataNode与客户端的距离,然后进行排序,排序两个规则,网络拓扑结构中距离client近的排靠前;心跳机制中超时汇报的DataNode状态为stale,这样的排靠后

4.client选取排序靠前的datanode来读取block,如果客户端本身就是DataNode,那么将从本地直接获取数据;底层上本质是建立socket stream(FSDataInputStream),重复的调用父类datainputstream的read方法,知道这个快上的数据读取完毕

5.当读完列表的block后,若文件读取还没有结束,客户端会继续想那么node获取下一批的block列表

6.读取完一个block都会进行checksum验证,如果读取DataNode时出现错误,客户端会同志namenode,然后再从下一个拥有block副本的datanode继续读

7.read方法是并行的读取block信息,不是一块一块的读取;namenode只是返回client请求包含块的DataNode地址,并不是返回请求快的数据

8.最终读取来所有的block会合并成一个完整的最终文件文章来源地址https://www.toymoban.com/news/detail-600973.html

到了这里,关于hdfs的读写流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HDFS读写流程详细过程

    HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。 适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变。

    2024年02月08日
    浏览(23)
  • hdfs的读写流程

    1.client发起文件上传请求,通过rpc与namenode建立通讯,namenode检查目标文件是否已经存在,父目录是否存在,返回是否可以上传 2.client请求第一个block该传输到哪些datanode服务器上 3.namenode根据配置文件中指定的备份数量及副本放置策略进行文件分配,返回可用DataNode地址,如:

    2024年02月16日
    浏览(28)
  • HDFS读写流程

    客户端向NameNode请求文件的位置:客户端想要访问一个文件时,会向NameNode发送一个请求,要求获取该文件在HDFS上的位置信息。 NameNode将位置信息返回给客户端:NameNode接收到客户端的请求后,会返回该文件所在的DataNode节点的IP地址和块ID等信息。 客户端连接DataNode获取数据:

    2024年02月09日
    浏览(23)
  • Hadoop Distributed System (HDFS) 写入和读取流程

    一、HDFS HDFS全称是Hadoop Distributed System。HDFS是为以流的方式存取大文件而设计的。适用于几百MB,GB以及TB,并写一次读多次的场合。而对于低延时数据访问、大量小文件、同时写和任意的文件修改,则并不是十分适合。 目前HDFS支持的使用接口除了Java的还有,Thrift、C、FUSE、

    2024年02月08日
    浏览(28)
  • 大数据 HDFS 的历史、特性、适用场景 运行机制、数据布局、读写流程、容错机制等

    作者:禅与计算机程序设计艺术 大数据的快速增长、高并发、海量数据、多样化的数据源、动态变化的数据特征,给数据的分析、挖掘带来了巨大的挑战。而HDFS就是存储大数据的一个关键组件。HDFS是一个分布式文件系统,主要用来存储和处理超大规模的数据集。HDFS可以方便

    2024年02月08日
    浏览(34)
  • 大数据技术基础实验四:HDFS实验——读写HDFS文件

    在前面的实验中我们进行了HDFS的部署,并设置了一键启动HDFS操作,本期实验我们将使用HDFS开发环境进行HDFS写、读的编写,以及程序的运行,了解HDFS读写文件的调用流程,理解HDFS读写文件的原理。 好啦废话不多说,我们开始今天的实验操作。 会在Linux环境下编写读写HDFS文

    2023年04月16日
    浏览(29)
  • 【Hadoop-HDFS】HDFS常用操作命令

    hadoop fs -ls / 普通创建: hadoop fs -mkdir /xiaolin 递归创建: hadoop fs -mkdir -p /xiaolin/xiaoyin mkdir xuan.txt hadoop fs -moveFromLocal xuan.txt /xiaolin hadoop fs -copyFromLocal xuan.txt / hadoop fs -put xuan.txt / 文件名称相同时覆盖hdfs上的文件: -f hadoop fs -put -f xuan.txt / hadoop fs -copyToLocal /xiaolin ./ hadoop fs -get

    2024年02月05日
    浏览(37)
  • hadoop-HDFS

    1.HDFS简介 2.1  Hadoop 分布式文件系统-HDFS架构 2.2  HDFS 组成角色及其功能 (1)Client:客户端 (2)NameNode (NN):元数据节点 管理文件系统的Namespace元数据 一个HDFS集群只有一个Active的NN (3)DataNode (DN):数据节点 数据存储节点,保存和检索Block 一个集群可以有多个数据节点 (

    2024年02月11日
    浏览(33)
  • hadoop与hdfs

    简介 Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的 项目结构 应用框架 版本演变 项目结构 组件 功能 HDFS 分布式文件系统 MapReduce 分布式并行

    2024年01月22日
    浏览(26)
  • HADOOP HDFS详解

    目录 第一章 概述 1.1大数据的特征(4V) 1.2 大数据的应用场景 1.3大数据的发展前景 1.4企业大数据的一般处理流程 1.4.1数据源 1.4.2数据采集或者同步 1.4.3数据存储 1.4.4 数据清洗 1.4.5 数据分析 1.4.6数据展示 第二章 hadoop介绍 2.1.hadoop 目标 2.2 hadoop的介绍 2.3 hadoop起源 2.4 Hadoop版本

    2024年03月13日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包