HDFS的读写流程是什么
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,今天小编给大家分享一下HDFS的读写流程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解
千家信息网最后更新 2025年01月16日HDFS的读写流程是什么
今天小编给大家分享一下HDFS的读写流程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
1.读文件的流程
如图所示,读文件的流程主要包括以下6个步骤:
打开分布式文件:调用分布式文件 DistributedFileSystem.open( ) 方法; 寻址请求:从 NameNode 处得到 DataNode 的地址,DistributedFileSystem使用 RPC 方式调用了NameNode,NameNode 返回存有该副本的DataNode 地址,DistributedFileSystem 返回了一个输入流对象(FSDataInputStream),该对象封装了输入流 DFSInputStream; 连接到DataNode:调用输入流 FSDataInputStream.read( ) 方法从而让DFSInputStream 连接到 DataNodes; 从 DataNode 中获取数据:通过循环调用 read( ) 方法,从而将数据从 DataNode 传输到客户端; 读取另外的 DataNode 直到完成:到达块的末端时候,输入流 DFSInputStream 关闭与 DataNode 连接, 寻找下一个 DataNode; 完成读取,关闭连接:即调用输入流 FSDataInputStream.close( );
2.写文件流程
发送创建文件请求:调用分布式文件系统 DistributedFileSystem.create( )方法; NameNode 创建文件记录:分布式文件系统 DistributedFileSystem 发送 RPC 请求给 NameNode,NameNode 检查权限后创建一条记录,返回输出流 FSDataOutputStream,封装了输出流 DFSOutputDtream; 客户端写入数据:输出流 DFSOutputDtream 将数据分成一个个的数据包,并写入内部队列。DataStreamer 根据 DataNode 列表来要求 NameNode 分配适合的新块来存储数据备份。 一组 DataNode 构成管线(管线的 DataNode 之间使用 Socket 流式通信); 使用管线传输数据:DataStreamer 将数据包流式传输到管线第一个DataNode,第一个 DataNode 再传到第二个DataNode,直到完成; 确认队列:DataNode 收到数据后发送确认,管线的 DataNode 所有的确认组成一个确认队列。所有 DataNode 都确认,管线数据包删除; 关闭:客户端对数据量调用 close( ) 方法。将剩余所有数据写入DataNode管线,联系NameNode并且发送文件写入完成信息之前等待确认; NameNode确认: 故障处理:若过程中发生故障,则先关闭管线,把队列中所有数据包添加回去队列,确保数据包不漏。为另一个正常 DataNode 的当前数据块指定一个新的标识,并将该标识传送给 NameNode,一遍故障 DataNode 在恢复后删除上面的不完整数据块。从管线中删除故障 DataNode 并把余下的数据块写入余下正常的 DataNode。NameNode 发现复本两不足时,会在另一个节点创建一个新的复本;
在数据的读取过程中难免碰到网络故障,脏数据,DataNode 失效等问题,这些问题 HDFS 在设计的时候都早已考虑到了。下面来介绍一下数据损坏处理流程:
当 DataNode 读取 block 的时候,它会计算 checksum。 如果计算后的 checksum,与 block 创建时值不一样,说明该 block 已经损坏。 Client 读取其它 DataNode上的 block。 NameNode 标记该块已经损坏,然后复制 block 达到预期设置的文件备份数 。 DataNode 在其文件创建后验证其 checksum。
以上就是"HDFS的读写流程是什么"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
数据
文件
管线
流程
故障
方法
队列
输入
分布式
知识
篇文章
客户
客户端
时候
传输
输出
内容
地址
复本
对象
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
个人网络安全防护公司
国际软件开发公司排名
珠海无限软件开发价格走势
amazon 爬虫软件开发
云锁访问广联达服务器异常
无线网络技术的发展形势
数据库百万数据关联查询
厦门程序软件开发
延庆区网络技术服务
区妇联网络安全
软件开发项目应急响应方案
东莞通天星软件开发公司
网络技术带来的伦理问题
网络安全的概念股票
小学生网络安全宣传
ios15的邮件无法验证服务器
服务器c盘安全权限设置
小程序数据库实现购物车
阿里时序数据库
莆田学院网络安全教学平台
全网公敌helloworld入侵服务器
安徽禾作互联网科技有限公司
mc服务器需要国际版吗
数据库外键参照语句怎么写
长春网络安全课程费用多少
如何只读一次数据库
黑龙江数据库空投箱销售厂家
函授大学毕业论文上数据库么
我的世界5328388服务器
软件开发基础知识指什么