HDFS如何读写数据
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要介绍HDFS如何读写数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!写:示例:上传一个200M的文件到HDFS分布式系统执行流程:1、client向NameNod
千家信息网最后更新 2025年12月03日HDFS如何读写数据
这篇文章主要介绍HDFS如何读写数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
写:
示例:上传一个200M的文件到HDFS分布式系统执行流程:1、client向NameNode发送上传文件的请求,NameNode会做校验。--(检查是否具备权限,上传路径是否存在,文件是否以存在,是否执行覆盖操作等)2、NameNode响应客户端,可以上传文件3、client按照集群中块大小的设置对200M的数据进行切块,即切分为128M和72M两个block块,并请求返回DataNode节点信息 。 a.执行上传时,是一块一块进行上传,则先请求上传0~128M的块信息(第一个block块),因为数据真实存在DataNode节点上,所以NameNode会返回dn1\dn2\dn3三个服务器节点存储数据。--副本存储节点选择机制,如何选择节点并返回?(见图NameNode部分)--为什么明明只往一个节点传,还要返回三个节点?(我觉得如果只返回一个节点,如果那个节点挂了,就不知道往哪传了,所以返回三个,dn1故障了可以选择往dn2或dn3传。)4、client得到dn的信息后,会和dn服务器节点建立链接,client发送请求建立block传输通道,执行写数据操作 a.client在和dn建立连接时,也会有选择,选择距离客户端最近的节点请求建立链接通道(假设dn1最近) b.client和dn1建立链接通道之后,dn1内部发请求到dn2,请求建立通道,dn2发请求到dn3,请求建立通道, dn3响应dn2,dn2响应dn1,dn1响应client ,均没有问题,通道建立成功 5、数据传输时,不是说将128M的文件直接进行传输,而是client向dn1以Packet为单位进行数据传输,(packet大小:64KB),每次传输64KB,最后一次传输数据大小可能不够64KB。 a.client向dn1传输64KB的数据到内存,dn1落盘(在当前节点服务器上将数据由内存写到本地),并分发给dn2(内存), dn2落盘,在发给dn3(内存),dn3落盘 --逻辑上的说法 b.chunk数据传输过程中的最小单位(512字节),每次从0~128M中读数据,先读取512字节放入chunk中,当chunk满载时,对chunk内的数据进行校验,生成校验和(占4个字节),即共将516个字节放入Packet内,一个Packet存在N多个chunk --真实说法 c.各节点内部Packet是如何进行传输的? 在hdfs内部有一个队列,叫做dataQuene(缓冲队列),每传输一个Packet,就将当前Packet放入到DQ队列中,当dn1接收到DQ中的Packet时,会将Packet从DQ队列中拉取出来,存入另一队列ackQuene中(应答队列),当dn1,dn2,dn3等节点均将ackq中的数据写成功之后,ackquene中的packet移除,表示packet传输完成6、当dn1、dn2、dn3建立通道时,或者在数据传输过程中,如果某个节点出现问题,比如dn2宕机了,那么客户端会重新发请求建立传输通道,这时,宕机的节点dn2不在请求应答,dn1 和 dn3直接建立通道,dn2不在使用,缺少副本数据,内部机器会重新配置一台来顶替dn2,保证真实节点数据和副本机制设置的保持一致7、数据传输完成之后,流关闭,执行第二个块的数据写操作,步骤同上
读:
示例:从HDFS系统下载一个200M的文件到本地1、client向NameNode发送下载文件请求,NameNode向client返回目标文件的元数据2、client根据元数据,通过FSDataInputStream进行读取,client和距离客户端最近的dn节点建立传输通道 a.注意:读数据,只需要与一个节点建立通道即可,只要可以读一次,取到真实数据就行3、读数据也是以Packet为单位,注意,第一次读取时可能会取到第一个块的数据,但是第二个块可能存在其它节点上,这时,其余数据的读取需要client与其它节点重新建立通道进行读取。4、多个块读取到client之后,在client会进行缓存,然后合并写入目标文件,保证读取的真实数据的完整性
以上是"HDFS如何读写数据"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
数据
节点
传输
通道
文件
队列
数据传输
选择
内存
字节
客户
客户端
三个
信息
副本
单位
大小
服务器
链接
服务
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
cots 服务器
阿里云服务器的管理员账号
查数据库字段名
数据库 性别约束
数据库中字段规则
软件开发专项应付款
有线网络安全与防范
mvc查询数据库
快消品管理软件开发公司
服务器怎么反应财务报表
菏泽苹果软件开发系统
超市管理软件开发
国际贸易统计数据库如何查询
现在学软件开发有前景吗
省级网络安全支撑企业名单
中心网络技术
郑州百信云龙服务器价格是多少
软件开发工程师职业规划作品
网络安全手抄报简单易画 一等奖
自考本的论文也提交数据库吗
网络安全广州有哪些公司
怎么删除同步数据库表
预防针时间表软件开发
鬼三服务器
软件开发人力外包 澳柯玛
生产erp 数据库
服务器冗余电源的作用
网络安全影响评估方法设计
观看护苗网络安全课程
数据库完整性实验结论