`

HDFS--文件的读写流程

 
阅读更多

出处:http://www.cnblogs.com/forfuture1978/archive/2010/03/14/1685351.html

读文件的过程

客户端(client)用FileSystem的open()函数打开文件

DistributedFileSystem用RPC调用元数据节点,得到文件的数据块信息。

对于每一个数据块,元数据节点返回保存数据块的数据节点的地址。

DistributedFileSystem返回FSDataInputStream给客户端,用来读取数据。

客户端调用stream的read()函数开始读取数据。

DFSInputStream连接保存此文件第一个数据块的最近的数据节点。

Data从数据节点读到客户端(client)

当此数据块读取完毕时,DFSInputStream关闭和此数据节点的连接,然后连接此文件下一个数据块的最近的数据节点。

当客户端读取完毕数据的时候,调用FSDataInputStream的close函数。

在读取数据的过程中,如果客户端在与数据节点通信出现错误,则尝试连接包含此数据块的下一个数据节点。

失败的数据节点将被记录,以后不再连接。

 

写文件的过程

客户端调用create()来创建文件

DistributedFileSystem用RPC调用元数据节点,在文件系统的命名空间中创建一个新的文件。

元数据节点首先确定文件原来不存在,并且客户端有创建文件的权限,然后创建新文件。

DistributedFileSystem返回DFSOutputStream,客户端用于写数据。

客户端开始写入数据,DFSOutputStream将数据分成块,写入data queue。

Data queue由Data Streamer读取,并通知元数据节点分配数据节点,用来存储数据块(每块默认复制3块)。分配的数据节点放在一个pipeline里。

Data Streamer将数据块写入pipeline中的第一个数据节点。第一个数据节点将数据块发送给第二个数据节点。第二个数据节点将数据发送给第三个数据节点。

DFSOutputStream为发出去的数据块保存了ack queue,等待pipeline中的数据节点告知数据已经写入成功。

如果数据节点在写入的过程中失败:

关闭pipeline,将ack queue中的数据块放入data queue的开始。

当前的数据块在已经写入的数据节点中被元数据节点赋予新的标示,则错误节点重启后能够察觉其数据块是过时的,会被删除。

失败的数据节点从pipeline中移除,另外的数据块则写入pipeline中的另外两个数据节点。

元数据节点则被通知此数据块是复制块数不足,将来会再创建第三份备份。

当客户端结束写入数据,则调用stream的close函数。此操作将所有的数据块写入pipeline中的数据节点,并等待ack queue返回成功。最后通知元数据节点写入完毕。

分享到:
评论

相关推荐

    hdfs-文件读写测试

    ### HDFS 文件读写原理详解 #### 一、HDFS 写入原理 HDFS (Hadoop Distributed File System) 是一种分布式文件系统,主要用于存储大量数据。为了保证数据的可靠性和高可用性,HDFS 采用了多副本机制,通常每个文件...

    PyPI 官网下载 | dbnd-hdfs-0.33.0.tar.gz

    3. **数据读写**:通过Python接口直接读取HDFS上的数据文件,并将处理结果写回HDFS,支持多种文件格式如CSV、JSON、Parquet等。 4. **数据处理流水线**:dbnd-hdfs可以集成到Data Band的数据任务中,构建端到端的...

    Python库 | dbnd_hdfs-0.45.6-py2.py3-none-any.whl

    它提供了简洁的接口,允许用户像操作本地文件系统一样操作HDFS文件,支持多种数据格式,如CSV、JSON、Parquet等。 2. 文件操作:除了基本的读写操作,该库还提供了文件和目录的创建、删除、移动和重命名等管理功能...

    分布式文件系统hdfs - 副本.zip

    - **DataNode**:存储文件的实际数据块,并负责数据的读写操作。它们会定期向NameNode发送心跳信息和块报告,以保持通信和同步状态。 ### 3. 工作流程 - **写文件**:客户端首先与NameNode通信,获取文件块的存放...

    基于HDFS+FTP的文件存储与迁移实验代码.zip

    在本实验中,我们将探讨如何利用Hadoop的分布式文件系统(HDFS)和FTP协议进行文件的存储与迁移。这个"基于HDFS+FTP的文件存储与迁移实验代码.zip"包含了一个名为"HDFS_FTP_ForMyProject-master"的项目源码,这为...

    揭秘大数据存储基石HDFS-理论篇.pptx_揭秘大数据存储基石HDFS_pptx_

    HDFS是Apache Hadoop项目的核心组件之一,是为处理大规模数据集而设计的一种分布式文件系统。它以高容错性和高可用性为目标,旨在运行在廉价的硬件上,为大数据分析提供了坚实的基础。在本理论篇中,我们将深入探讨...

    行业分类-设备装置-一种文件读写方法及装置.zip

    9. 分布式存储:在分布式系统中,文件可能跨越多个节点,这时需要了解分布式文件系统(如HDFS)的工作机制和其特有的读写流程。 10. 文件元数据:文件的创建时间、修改时间、权限等元数据也是文件读写的一部分,...

    HDFS文件读写操作

    ### HDFS文件读写操作详解 #### 一、HDFS架构概述 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目之一,旨在提供高吞吐量的数据访问,适用于大规模数据集上的应用。HDFS采用了Master/Slave的...

    Python库 | hdfs3-0.1.4-py2.py3-none-any.whl

    1. **易用性**:`hdfs3`库通过提供简单的Python接口,使得Python开发者可以像操作本地文件系统一样方便地操作HDFS,例如读写文件、创建目录等。 2. **性能优化**:库内部实现了对HDFS操作的低级优化,以提高数据...

    HDFS读写流程.xmind

    HDFS读写数据流程描述,脑图展示,易于理解与记忆,仅供学习使用。HDFS分布式文件系统是一个主从架构,主节点是NameNode,负责管理整个集群以及维护集群的元数据信息;从节点是DataNode,主要负责文件数据存储。

    HDFS 的读写数据流程:

    5. 文件读写的packet传输:客户端将读取的文件分割成小块,使用packet传输到DataNode。 HDFS的写入流程 1. 文件写入:客户端请求写入文件,NameNode返回可写入的文件信息。 2. 分布式文件系统:NameNode将文件分配...

    HDFS构架设计和读写流程.docx

    ### HDFS架构设计和读写流程详解 #### HDFS概览 HDFS(Hadoop Distributed File System),即Hadoop分布式文件系统,旨在解决大规模数据集的存储问题,它通过将数据分散存储在由多台低成本商用服务器组成的集群上,...

    《Hadoop大数据开发实战》教学教案—03HDFS分布式文件系统.pdf

    本节课程主要介绍 HDFS 的概念、HDFS 存储架构和数据读写流程、HDFS 的 Shell 命令、Java 程序操作 HDFS、Hadoop 序列化、Hadoop 小文件处理、通信机制 RPC 等知识点。 HDFS 概念 HDFS(Hadoop Distributed File ...

    【HDFS篇06】HDFS数据读写流程1

    在分布式文件系统HDFS(Hadoop Distributed File System)中,数据的读写流程是其核心功能之一,确保了数据的安全性和高效性。本篇文章主要探讨HDFS的数据读写流程,特别是写数据的过程。 首先,我们关注HDFS的写...

    Hadoop技术HDFS数据读写流程共7页.pdf.zip

    本文件" Hadoop技术HDFS数据读写流程共7页.pdf "显然提供了关于HDFS数据读写过程的详细信息,虽然实际的文档内容无法在此直接展示,但根据标题和描述,我们可以深入探讨HDFS的数据读写流程,以及它在Hadoop生态系统...

    实验项目 实战 HDFS 实验报告

    实验目的是通过一系列操作,让学生全面理解HDFS的架构、文件存储原理以及数据读写流程。 一、HDFS体系架构 HDFS由NameNode、DataNode和SecondaryNameNode等关键组件构成。NameNode作为元数据管理节点,负责文件系统...

    web中进行HDFS文件系统操作的一些例程

    本示例是关于如何在Web环境中使用Java Servlets或JSP(JavaServer Pages)进行HDFS文件系统操作的教程。 首先,我们需要了解HDFS的基本概念。HDFS是一种高度容错性的分布式文件系统,设计用于运行在廉价硬件上。它...

    HDFS读写数据流程分析.ppt

    HDFS读写数据流程分析 HDFS(Hadoop Distributed File System)是一种分布式文件系统,用于存储和管理大规模数据。在HDFS中,数据读写是通过客户端与NameNode和DataNode进行交互实现的。在这里,我们将详细分析HDFS...

    HDFS文件系统技术详解.pdf

    本文将深入探讨HDFS的文件读写机制、副本策略、Shell接口以及Java API,以帮助读者理解其工作原理和操作方式。 首先,我们来看HDFS的文件读取过程。在HDFS中,读取文件始于客户端通过RPC获取DistributedFileSystem...

    高可用性的HDFS:Hadoop分布式文件系统深度实践

    4.5.6 NameNode宕机读写测试 第5章 AvatarNode运行机制 5.1 方案说明 5.1.1 系统架构 5.1.2 思路分析 5.1.3 性能数据 5.2 元数据分析 5.2.1 类FSNamesystem 5.2.2 类FSDirectory 5.2.3 AvatarNode的磁盘元数据文件 ...

Global site tag (gtag.js) - Google Analytics