问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

HDFS的文件存储过程?

发布网友 发布时间:2022-04-21 21:53

我来回答

1个回答

热心网友 时间:2023-07-01 17:59

(1)客户端通过FileSystem.open()打开文件,相应地,在HDFS文件系统中DistributedFileSystem具体实现了FileSystem。因此,调用了open()方法后,DistributedFileSystem会创建输入流FSDataInputStream,对于HDFS而言,具体的输入流就是DFSInputStream.

(2)DFSInputStream的构造函数中,输入流通过ClientProtocal.getBloackLocations()远程调用NameNode,获得文件开始部分数据块的保存位置。对于该数据块。名称节点返回保存该数据块的锁哟数据节点的地址,同时根据距离客户端的远近对数据节点进行排序,然后DistributedFileSystem会利用DFSInputStream来实例化FSDataInputStream返回给客户端,同时返回了数据块的数据节点的地址。

(3)获得输入流FSDataInputStream后,客户端调用read()函数开始读取数据。输入流根据前面的排序结果,选择距离客户端最近的数据节点建立连接,然后读取数据。

(4)读取完毕后,关闭流,如果还有下一个数据块,就与下一个DN建立连接,读取数据块。

(1)客户端发起创建文件请求

(2)DistributedFileSystem通过RPC远程调用名称节点,在文件系统的命名空间中创建一个新的文件。名称节点会执行一些检查,比如这个文件是否存在,客户端是否有权限等。通过检查,名称节点会狗仔一个新文件,并且添加文件信息。然后返回给客户端一个输出流,客户端通过这个输出流,用它来写入数据。

(3)获得输出流FSDataOutputStream以后,客户端调用输出流的write方法想HDFS中对应的文件写入数据

客户端向输出流FSDataOutputStream中写入的数据会首先被分成一个个的分包,这些分包被放入DFSOutputStream对象的内部队列。每个包64K,包中有数据块,块是512字节,这些包被放入DFSOutputStream对象的内部队列,FSDataOutputStream向名称节点申请保存文件和副本数据块的若干数据节点。这些数据节点形成一个数据流管道,队列中的分包最后被打包成数据包,发往数据流管道第一个节点,第一个节点又复制到第二、三个节点,采用流水线复制策略(在写入磁盘时候 是每次4k往磁盘写)

(5)为保证所有数据节点的数据准备DataNode返回确认包 Client收到应答,将对应分宝从内部队列移除。开始下一个分包。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 默认情况下,文件 apache.log 将被 hdfs 切分成几... 关于hdfs的物理存储路径问题 hdfs中冗余存储的份数在什么配置文件中可以指定? 四川省副主任医师职称申报条件 hdfs的数据存储和管理通常至少要有几个副本? 面试题:hadoop中为什么block默认是64M,有什么好处 hdfs如果只有一个节点,默认3个冗余备份,那总共会有... 四川省卫生高级职称评审条件 hadoop hdfs默认3个副本,那最终会存储几份数据? 德比是什么意思 淘宝退款红包会退吗/淘宝退款红包会退吗 “德比”一词什么意思? 德比大战是什么意思? 德比 是什么意思? 威尼斯的民俗风情 为什么同一个城市的足球比赛叫德比战 德比 什么概念 pancake day是什么意思 什么是德比?什么是德比日? 威尼斯的重要节日 2017年四川省卫生高级职称评聘还需要外语成绩吗 hdfs block为什么不易过小 gate怎么通过uid搜索到别人 川卫办发[2008]59号大神们帮帮忙 为什么HDFS写入速度如此之慢 如何用EXcel公式根据参加工作时间计算工龄 大专,县级疾控,中级几年进副高 四川省基层卫生副高通过率 工龄计算的计算公式 在hadoop项目结构中h dfs指的是什么 HDFS的block和切片(split)的区别 华为笔记本打字切不出中文输入 想知道:四川省卫生高级职称申报材料 请问hadoop的hdfs文件系统和本地windows文件系统或... 参加工作时间如何认定,工龄如何算? 晋升了主治医师以后,多久可以晋升副高?具体点。 ... 查看HADOOP中一个文件有多少块组成 按月算工龄如何计算公式 请问在Hadoop的HDFS中,是如何把文件分割后的block... Hadoop中怎么查看文件的block size