iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何解析HDFS的写文件流程
  • 253
分享到

如何解析HDFS的写文件流程

2023-06-03 02:06:19 253人浏览 安东尼
摘要

这篇文章给大家分享的是有关如何解析hdfs的写文件流程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。文件是如何写入HDFS的 ?下面我们来先看看下面的“写”流程图:    

这篇文章给大家分享的是有关如何解析hdfs的写文件流程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

文件是如何写入HDFS的 ?

下面我们来先看看下面的“写”流程图: 
如何解析HDFS的写文件流程

        假如我们有一个文件test.txt,想要把它放到hadoop上,执行如下命令:

引用


        # hadoop fs  -put  /usr/bigdata/dataset/input/20130706/test.txt   /opt/bigdata/hadoop/dataset/input/20130706  //或执行下面的命令 
        # hadoop fs -copyFromLocal /usr/bigdata/dataset/input/20130706/test.txt  /opt/bigdata/hadoop/dataset/input/20130706        
       

        整个写流程如下: 
        第一步,客户端调用DistributedFileSystem的create()方法,开始创建新文件:DistributedFileSystem创建DFSOutputStream,产生一个rpc调用,让Namenode在文件系统的命名空间中创建这一新文件; 
        第二步,NameNode接收到用户的写文件的RPC请求后,谁偶先要执行各种检查,如客户是否有相关的创佳权限和该文件是否已存在等,检查都通过后才会创建一个新文件,并将操作记录到编辑日志,然后DistributedFileSystem会将DFSOutputStream对象包装在FSDataOutStream实例中,返回客户端;否则文件创建失败并且给客户端抛ioException。 
        第三步,客户端开始写文件:DFSOutputStream会将文件分割成packets数据包,然后将这些packets写到其内部的一个叫做data queue(数据队列)。data queue会向NameNode节点请求适合存储数据副本的DataNode节点的列表,然后这些DataNode之前生成一个Pipeline数据流管道,我们假设副本集参数被设置为3,那么这个数据流管道中就有三个DataNode节点。 
        第四步,首先DFSOutputStream会将packets向Pipeline数据流管道中的第一个DataNode节点写数据,第一个DataNode接收packets然后把packets写向Pipeline中的第二个节点,同理,第二个节点保存接收到的数据然后将数据写向Pipeline中的第三个DataNode节点。 
        第五步,DFSOutputStream内部同样维护另外一个内部的写数据确认队列——ack queue。当Pipeline中的第三个DataNode节点将packets成功保存后,该节点回向第二个DataNode返回一个确认数据写成功的信息,第二个DataNode接收到该确认信息后在当前节点数据写成功后也会向Pipeline中第一个DataNode节点发送一个确认数据写成功的信息,然后第一个节点在收到该信息后如果该节点的数据也写成功后,会将packets从ack queue中将数据删除。 
        在写数据的过程中,如果Pipeline数据流管道中的一个DataNode节点写失败了会发生什问题、需要做哪些内部处理呢?如果这种情况发生,那么就会执行一些操作: 
        首先,Pipeline数据流管道会被关闭,ack queue中的packets会被添加到data queue的前面以确保不会发生packets数据包的丢失,为存储在另一正常dataname的当前数据指定一个新的标识,并将该标识传送给namenode,以便故障datanode在恢复后可以删除存储的部分数据块; 
        接着,在正常的DataNode节点上的以保存好的block的ID版本会升级——这样发生故障的DataNode节点上的block数据会在节点恢复正常后被删除,失效节点也会被从Pipeline中删除; 
        最后,剩下的数据会被写入到Pipeline数据流管道中的其他两个节点中。 
        如果Pipeline中的多个节点在写数据是发生失败,那么只要写成功的block的数量达到dfs.replication.min(默认为1),那么就任务是写成功的,然后NameNode后通过一步的方式将block复制到其他节点,最后事数据副本达到dfs.replication参数配置的个数。 
        第六步,,完成写操作后,客户端调用close()关闭写操作,刷新数据; 
        第七步,,在数据刷新完后NameNode后关闭写操作流。到此,整个写操作完成。      

感谢各位的阅读!关于“如何解析HDFS的写文件流程”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 如何解析HDFS的写文件流程

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

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

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

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

下载Word文档
猜你喜欢
  • 如何解析HDFS的写文件流程
    这篇文章给大家分享的是有关如何解析HDFS的写文件流程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。文件是如何写入HDFS的 ?下面我们来先看看下面的“写”流程图:    ...
    99+
    2023-06-03
  • HDFS文件写流程的示例分析
    小编给大家分享一下HDFS文件写流程的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!图理解:详解HDFS写的过程:1.Client客户端发出请求open到...
    99+
    2023-06-03
  • HDFS文件读流程的示例分析
    这篇文章主要介绍了HDFS文件读流程的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用图来理解:详解HDFS读的过程:1.Client客户端发出请求open到Dist...
    99+
    2023-06-03
  • Hadoop中HDFS文件读写流程是怎么样的
    这篇文章主要介绍了Hadoop中HDFS文件读写流程是怎么样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、文件读流程说明读取操作是对于Cient端是透明操作,感觉是连续...
    99+
    2023-06-03
  • HDFS如何写流程及权限问题
    这篇文章主要介绍HDFS如何写流程及权限问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! root用户上传文件到hdfs的权限问题:    su -c  命令: -c command ...
    99+
    2023-06-03
  • HDFS的读写流程是什么
    今天小编给大家分享一下HDFS的读写流程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.读文件的流程如图所示,读文件...
    99+
    2023-06-27
  • HDFS读流程的示例分析
    这篇文章给大家分享的是有关HDFS读流程的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。客户端或者用户通过调用FileSystem对象的Open()方法打开需要读取的文件,这时就是HDSF分布式系统所获取...
    99+
    2023-06-02
  • HDFS中读写流程是怎么样的
    这篇文章给大家分享的是有关HDFS中读写流程是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。文件读流程也包含该列表各block的分布在Datanode地址的列表当然读操作对于Client端是透明的,感觉就...
    99+
    2023-06-02
  • HDFS如何解决小文件问题
    小编给大家分享一下HDFS如何解决小文件问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.理解:我理解小文件为存储在块中的数据大小远小于块的存储容量的文件,这...
    99+
    2023-06-03
  • hadoop如何看hdfs里的文件
    要查看Hadoop分布式文件系统(HDFS)中的文件,您可以使用以下命令行工具:1. 使用`hdfs dfs -ls`命令列出HDF...
    99+
    2023-10-11
    hadoop
  • python如何读取hdfs上的文件
    在Python中读取HDFS上的文件可以使用pyarrow库。pyarrow是一个Apache Arrow的Python接口,可以用...
    99+
    2024-04-02
  • 如何实现VB.NET文件流读、写类文件
    这篇文章主要介绍如何实现VB.NET文件流读、写类文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!VB.NET文件流代码:Option Explicit  Private m...
    99+
    2023-06-17
  • 如何在python中读写文件流
    今天就跟大家聊聊有关如何在python中读写文件流,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、使用try进行异常发现,使用while检测文件末尾进行读取file_to_read...
    99+
    2023-06-15
  • 如何查看hdfs上的文件内容
    要查看HDFS上的文件内容,可以使用以下命令: 使用hadoop fs -cat命令: hadoop fs -cat /path...
    99+
    2024-04-02
  • ElasticSearch写入流程实例解析
    目录一、前言二、lucence写2.1 增删改2.2. 并发模型2.2.1. 基本操作2.2.2 更新2.2.3 删除2.2.4 flush和commit2.2.5 mer...
    99+
    2024-04-02
  • Java 如何利用缓冲流读写文件
    利用缓冲流读写文件 从控制台读取数据写入文件 读取文件输出到控制台 public class BookTest { public static void main(String...
    99+
    2024-04-02
  • 如何浅析.NET写入文本文件的操作
    这篇文章将为大家详细讲解有关如何浅析.NET写入文本文件的操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。.NET写入文本文件的操作时需要注意注意  Visual Basic 用...
    99+
    2023-06-17
  • 如何删除hdfs某个目录下的文件
    可以使用以下命令来删除HDFS某个目录下的文件: hadoop fs -rm /path/to/directory/file.txt...
    99+
    2024-04-02
  • C++文件流读写操作详解
    目录1.打开文件1.1 fstream类型1.2 open()的函数原型1.3 打开方式1.4 打开文件的属性1.5 示例代码2.文本文件的读写2.1 写文件示例2.2 读文件示例2...
    99+
    2024-04-02
  • 分布式文件系统HDFS的示例分析
    小编给大家分享一下分布式文件系统HDFS的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 从RAID说起大数据技术主要要解决的问题的是大规模数据的计算处理问题,那么首先要解决的就是大规模数据的存储问题。大规模数据存...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作