`

HDFS写入与读取流程

    博客分类:
  • HDFS
 
阅读更多

HDFS写入数据流程解析

那么问题来了,如果他们之间的一个datanode突然坏掉了怎么办。

1、如果传输过程中,有某个datanode出现了故障,那么当前的pipeline会被关闭,出现故障的datanode会从当前的pipeline中移除,剩余的block会继续剩下的datanode中继续以pipeline的形式传输,同时Namenode会分配一个新的datanode,保持replicas设定的数量。
2、关闭pipeline,将ack queue中的数据块放入data queue的开始。
3、当前的数据块在已经写入的数据节点中被元数据节点赋予新的标示,则错误节点重启后能够察觉其数据块是过时的,会被删除。
4、失败的数据节点从pipeline中移除,另外的数据块则写入pipeline中的另外两个数据节点。
5、元数据节点则被通知此数据块是复制块数不足,将来会再创建第三份备份。
6、客户端调用create()来创建文件
7、DistributedFileSystem用RPC调用元数据节点,在文件系统的命名空间中创建一个新的文件。
8、元数据节点首先确定文件原来不存在,并且客户端有创建文件的权限,然后创建新文件。
9、DistributedFileSystem返回DFSOutputStream,客户端用于写数据。
10、客户端开始写入数据,DFSOutputStream将数据分成块,写入data queue。
11、Data queue由Data Streamer读取,并通知元数据节点分配数据节点,用来存储数据块(每块默认复制3块)。分配的数据节点放在一个pipeline里。
12、Data Streamer将数据块写入pipeline中的第一个数据节点。第一个数据节点将数据块发送给第二个数据节点。第二个数据节点将数据发送给第三个数据节点。
13、DFSOutputStream为发出去的数据块保存了ack queue,等待pipeline中的数据节点告知数据已经写入成功。

HDFS读取数据流程解析

 

NameNode工作机制

分享到:
评论

相关推荐

    HDFS 的读写数据流程:

    HDFS的读写数据流程是其核心组件,通过NameNode和DataNode的交互来实现数据的读取和写入。HDFS的依赖项和配置项是其正常运作的基础。本文对HDFS的读写数据流程进行了详细的解释,有助于读者更好地理解HDFS的工作原理...

    HDFS读取和写入数据简介

    HDFS 的文件访问机制为流式访问机制,即通过 API 打开文件的某个数据块之后,可以顺序读取或者写入某个文件。由于 HDFS 中存在多个角色,且对应的应用场景主要为一次写入、多次读取的场景,因此其读和写的方式有较大...

    HDFS文件读写操作

    HDFS的文件写入流程主要包括以下步骤: 1. **客户端发起请求**:客户端向NameNode发起请求,请求上传文件。此时,NameNode会检查目标文件是否已存在,以及其父目录是否存在。 2. **NameNode响应**:如果一切条件...

    storm实时写入hadoop hdfs代码

    请管理员删除 有敏感信息。请管理员删除 有敏感信息。

    datax支持读取parquet格式文件,支持写入parquet格式文件,修复读取orc读取数据丢失问题

    新增的对Parquet格式的读取和写入支持意味着DataX现在可以更好地融入大数据工作流程,将数据高效地从一个Parquet文件系统迁移到另一个,或者从其他数据源导入到Parquet,为数据分析和处理提供便利。 其次,提到的...

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

    **HDFS数据写入流程** 1. **客户端请求**: 当客户端想要写入文件时,它首先与NameNode通信,获取文件块的存储位置。 2. **BlockPlacementPolicy**: NameNode根据策略(如副本数量、机架分布等)决定数据块的存储位置...

    java操作Hbase之从Hbase中读取数据写入hdfs中源码

    通过结合上述两段代码,你可以实现从HBase中读取数据并写入HDFS的功能。这只是一个基本的实现,实际应用中可能需要处理更复杂的情况,例如批量读取、错误处理、数据转换等。同时,为了提高性能,你还可以考虑使用...

    HDFS客户端数据流程分析.ppt

    HDFS 客户端数据流程分析是指在 Hadoop 分布式文件系统中,客户端如何与 HDFS 进行交互,读取和写入数据的过程。本文将对 HDFS 客户端数据流程进行详细的分析和解释。 读取数据流程 1. 客户端发起读取数据请求,...

    spark-base:读取文件文本并将其从HDFS写入拼花文件

    火花基读取文件文本并将其从HDFS写入拼花文件使用路径/ usr / trannguyenhan将sample_text文件夹中的5个文件.dat推送到HDFS(您可以修改路径,但也必须在代码中修改路径) hdfs dfs -mkdir /usr hdfs dfs -mkdir /...

    java 从hadoop hdfs读取文件 进行groupby并显示为条形图

    Java API提供了访问HDFS的接口,例如`org.apache.hadoop.fs.FileSystem`类,可以用于读取、写入和管理文件系统中的文件。 2. **Hadoop MapReduce**:MapReduce是Hadoop用于并行处理和分析大数据的编程模型。在GROUP...

    HDFS读写数据流程分析.ppt

    HDFS读写数据流程分析 HDFS(Hadoop Distributed File System)是一种分布式文件系统,用于存储和管理大...例如,在大数据处理中,HDFS可以用于存储和管理大量数据,而HDFS读写数据流程可以用于高效地读取和写入数据。

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

    4. **数据接收与写入**:客户端接收到数据后,先在本地缓存,然后将数据写入目标文件。这个过程一直持续到文件的最后一个Block读取完成。 总结来说,HDFS的数据读写流程是一个复杂而精细的过程,涉及到NameNode的元...

    python解析hdfs文件和实现方式

    2. 使用库创建与HDFS的连接。 3. 选择合适的方法读取不同类型的文件,如使用`pyarrow.parquet`读取Parquet文件,使用`hdfs3`读取文本或二进制文件。 4. 对读取的内容进行处理,如转换为DataFrame、保存到本地文件,...

    分布式存储系统——HDFS

    当用户向HDFS写入数据时,数据首先被分割成固定大小的数据块,然后客户端将数据块上传到DataNode上。NameNode接收到元数据请求后,会分配DataNode来存储数据块的副本。在读取数据时,客户端请求NameNode获取数据块的...

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

    客户端通过NameNode获取文件的元数据信息,然后直接与DataNode交互以读取或写入数据。 - **SecondaryNameNode**:并非集群中的活跃组件,主要用于辅助NameNode进行元数据的持久化和优化工作,比如定期合并NameNode的...

    python读取hdfs上的parquet文件方式

    pyarrow 提供了与 Parquet 文件交互的强大功能,但它的主要目标是低级别数据操作,可能不如 hdfs3 直接读取 Parquet 文件方便。hdfs 库(不是 hdfs3)是另一个选择,但它的更新可能不太频繁,且社区支持可能相对较少...

    python 操作 Hadoop hdfs

    而Python作为一种灵活易用的编程语言,常常被用来与Hadoop HDFS进行交互,实现数据的读取、写入和下载操作。本篇文章将深入探讨如何使用Python来操作Hadoop HDFS。 首先,我们需要一个Python库,如`hdfs`或`pyarrow...

    分布式文件系统HDFS原理与操作

    Hadoop分布式文件系统(HDFS)是Hadoop...以上就是HDFS的原理与操作相关的知识点,从其设计思想到体系结构再到具体的操作流程和可靠性策略都有所介绍。希望这些信息能帮助你深入理解HDFS的工作原理和如何有效操作HDFS。

    storm-hdfs, 用于与HDFS文件系统交互的风暴组件.zip

    storm-hdfs, 用于与HDFS文件系统交互的风暴组件 风暴 HDFS用于与HDFS文件系统交互的风暴组件用法以下示例将在每 1,000个元组同步后将管道("|") -delimited文件写入HDFS路径 hdfs://localhost:54310/foo.,使它的对...

    java对大数据HDFS文件操作

    Java作为广泛使用的编程语言,提供了丰富的API来操作HDFS,使得开发者能够方便地进行文件的读取、写入、复制、移动等操作。本文将详细讲解如何使用Java对HDFS进行文件操作,并介绍两个相关的项目示例。 首先,Java...

Global site tag (gtag.js) - Google Analytics