iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >HDFS的读写流程是什么
  • 263
分享到

HDFS的读写流程是什么

2023-06-27 14:06:23 263人浏览 独家记忆
摘要

今天小编给大家分享一下hdfs的读写流程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.读文件的流程如图所示,读文件

今天小编给大家分享一下hdfs的读写流程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

HDFS的读写流程是什么

1.读文件的流程

HDFS的读写流程是什么

如图所示,读文件的流程主要包括以下6个步骤:

  1. 打开分布式文件:调用分布式文件 DistributedFileSystem.open( ) 方法;
  2. 寻址请求:从 Namenode 处得到 DataNode 的地址,DistributedFileSystem使用 rpc 方式调用了NameNode,NameNode 返回存有该副本的DataNode 地址,DistributedFileSystem 返回了一个输入流对象(FSDatainputStream),该对象封装了输入流 DFSInputStream;
  3. 连接到DataNode:调用输入流 FSDataInputStream.read( ) 方法从而让DFSInputStream 连接到 DataNodes;
  4. 从 DataNode 中获取数据:通过循环调用 read( ) 方法,从而将数据从 DataNode 传输到客户端;
  5. 读取另外的 DataNode 直到完成:到达块的末端时候,输入流 DFSInputStream 关闭与 DataNode 连接, 寻找下一个 DataNode;
  6. 完成读取,关闭连接:即调用输入流 FSDataInputStream.close( );

2.写文件流程

HDFS的读写流程是什么
  1. 发送创建文件请求:调用分布式文件系统 DistributedFileSystem.create( )方法;
  2. NameNode 创建文件记录:分布式文件系统 DistributedFileSystem 发送 RPC 请求给 NameNode,NameNode 检查权限后创建一条记录,返回输出流 FSDataOutputStream,封装了输出流 DFSOutputDtream;
  3. 客户端写入数据:输出流 DFSOutputDtream 将数据分成一个个的数据包,并写入内部队列。DataStreamer 根据 DataNode 列表来要求 NameNode 分配适合的新块来存储数据备份。 一组 DataNode 构成管线(管线的 DataNode 之间使用 Socket 流式通信);
  4. 使用管线传输数据:DataStreamer 将数据包流式传输到管线第一个DataNode,第一个 DataNode 再传到第二个DataNode,直到完成;
  5. 确认队列:DataNode 收到数据后发送确认,管线的 DataNode 所有的确认组成一个确认队列。所有 DataNode 都确认,管线数据包删除;
  6. 关闭:客户端对数据量调用 close( ) 方法。将剩余所有数据写入DataNode管线,联系NameNode并且发送文件写入完成信息之前等待确认;
  7. NameNode确认:
  8. 故障处理:若过程中发生故障,则先关闭管线,把队列中所有数据包添加回去队列,确保数据包不漏。为另一个正常 DataNode 的当前数据块指定一个新的标识,并将该标识传送给 NameNode,一遍故障 DataNode 在恢复后删除上面的不完整数据块。从管线中删除故障 DataNode 并把余下的数据块写入余下正常的 DataNode。NameNode 发现复本两不足时,会在另一个节点创建一个新的复本;

在数据的读取过程中难免碰到网络故障,脏数据,DataNode 失效等问题,这些问题 HDFS 在设计的时候都早已考虑到了。下面来介绍一下数据损坏处理流程:

  • 当 DataNode 读取 block 的时候,它会计算 checksum。
  • 如果计算后的 checksum,与 block 创建时值不一样,说明该 block 已经损坏。
  • Client 读取其它 DataNode上的 block。
  • NameNode 标记该块已经损坏,然后复制 block 达到预期设置的文件备份数 。
  • DataNode 在其文件创建后验证其 checksum。

以上就是“HDFS的读写流程是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: HDFS的读写流程是什么

本文链接: https://www.lsjlt.com/news/311224.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HDFS的读写流程是什么
    今天小编给大家分享一下HDFS的读写流程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.读文件的流程如图所示,读文件...
    99+
    2023-06-27
  • HDFS中读写流程是怎么样的
    这篇文章给大家分享的是有关HDFS中读写流程是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。文件读流程也包含该列表各block的分布在Datanode地址的列表当然读操作对于Client端是透明的,感觉就...
    99+
    2023-06-02
  • Hadoop中HDFS文件读写流程是怎么样的
    这篇文章主要介绍了Hadoop中HDFS文件读写流程是怎么样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、文件读流程说明读取操作是对于Cient端是透明操作,感觉是连续...
    99+
    2023-06-03
  • hadoop的读写流程是什么
    Hadoop的读写流程主要分为两部分:HDFS的读写流程和MapReduce的读写流程。 HDFS的读写流程: 写入流程:当客户...
    99+
    2024-03-04
    hadoop
  • HDFS读流程的示例分析
    这篇文章给大家分享的是有关HDFS读流程的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。客户端或者用户通过调用FileSystem对象的Open()方法打开需要读取的文件,这时就是HDSF分布式系统所获取...
    99+
    2023-06-02
  • HDFS文件读流程的示例分析
    这篇文章主要介绍了HDFS文件读流程的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用图来理解:详解HDFS读的过程:1.Client客户端发出请求open到Dist...
    99+
    2023-06-03
  • HDFS文件写流程的示例分析
    小编给大家分享一下HDFS文件写流程的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!图理解:详解HDFS写的过程:1.Client客户端发出请求open到...
    99+
    2023-06-03
  • HDFS读写的示例分析
    这篇文章主要介绍了HDFS读写的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、HDFS读写之前提  NameNode(元数据节点):存放元数据(名称空间、副本数、...
    99+
    2023-06-02
  • 如何解析HDFS的写文件流程
    这篇文章给大家分享的是有关如何解析HDFS的写文件流程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。文件是如何写入HDFS的 ?下面我们来先看看下面的“写”流程图:    ...
    99+
    2023-06-03
  • HDFS如何写流程及权限问题
    这篇文章主要介绍HDFS如何写流程及权限问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! root用户上传文件到hdfs的权限问题:    su -c  命令: -c command ...
    99+
    2023-06-03
  • hbase读取数据的流程是什么
    HBase读取数据的流程如下: 客户端向HBase集群发送读取请求,请求包括表名、行键和列族等信息。 HMaster接收到请求后,...
    99+
    2024-03-05
    hbase
  • hdfs命令指的是什么
    这篇文章主要讲解了“hdfs命令指的是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“hdfs命令指的是什么”吧! hdfs命...
    99+
    2023-03-15
    hdfs
  • Node.js中的可读流是什么
    本篇内容主要讲解“Node.js中的可读流是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中的可读流是什么”吧!1. 基本概念1.1. 流的历...
    99+
    2024-04-02
  • Node中的可读流是什么
    这篇文章主要介绍了Node中的可读流是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node中的可读流是什么文章都会有所收获,下面我们一起来看看吧。1. 基本概念1.1. 流的历史演变流不是 Nodejs ...
    99+
    2023-07-05
  • Java IO流创建读取与写入操作是什么
    这篇文章主要讲解了“Java IO流创建读取与写入操作是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java IO流创建读取与写入操作是什么”吧!概念IO流可以初步的理解为数据间的传输...
    99+
    2023-06-30
  • linux多进程读写文件的方法是什么
    Linux中多进程读写文件的方法有以下几种:1. 使用文件锁(File Locking):可以使用文件锁来确保在任意时刻只有一个进程...
    99+
    2023-09-27
    linux
  • qt多线程读写文件的方法是什么
    在Qt中,可以使用QThread类来实现多线程读写文件。首先,创建一个自定义的QThread子类,重写其run()函数,该函数会在子...
    99+
    2023-09-22
    qt
  • hadoop和hdfs的区别是什么
    Hadoop是一个开源的分布式计算框架,可以实现对大规模数据的存储和处理,而HDFS(Hadoop Distributed File...
    99+
    2024-03-14
    hadoop hdfs
  • HDFS的工作原理是什么
    这篇文章将为大家详细讲解有关HDFS的工作原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。HDFS的工作原理HDFS支持在计算节点之间快速传输数据。在开始阶段,它与MapReduce紧密耦合——M...
    99+
    2023-06-05
  • mysql读写分离的作用是什么
    这篇文章将为大家详细讲解有关mysql读写分离的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、说明是让主数据库处理事务性增、改、删操作,而从数据库处理SELECT查询操作。数据...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作