HDFS如何读写数据
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍HDFS如何读写数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!写:示例:上传一个200M的文件到HDFS分布式系统执行流程:1、client向NameNod
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
网络安全 英语作文150字
服务器安全维护论文
phpcms 数据库说明
青海互联网网络技术服务热线
太仓进口网络技术质量保证
网络安全攻防展望论文
米咖科技卢焕辉互联网创业时代
华为网络技术复赛地点
服务器账号和密码怎么登录
手机服务器存在问题怎么处理
数据库如何判断安全
遥感解译软件开发教材
关于电子计算机主服务器
军营网络安全知识宣传片
网络安全与危机
数据库表建立索引
网络安全等级保护安全案例
运维平台数据库方案
常州常用网络技术推荐咨询
亳州出入库软件开发平台
网络安全政治试卷答案
深圳八秒网络技术有限公司
2k21服务器连接不了
软件开发杂志社
我的世界端游服务器怎么进去的
为什么做软件开发很辛苦
网络安全等级保护安全案例
嵌入式nosql数据库
网络安全与法学专业
数据库查询前几名