千家信息网

HDFS如何读写数据

发表于:2024-10-09 作者:千家信息网编辑
千家信息网最后更新 2024年10月09日,这篇文章主要介绍HDFS如何读写数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!写:示例:上传一个200M的文件到HDFS分布式系统执行流程:1、client向NameNod
千家信息网最后更新 2024年10月09日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安全错误 数据库的锁怎样保障安全 人人彩网络技术 陕西联想服务器维修云空间 小学网络安全教育绘画 榆树网络技术诚信经营 陕西省税务局安全接入服务器地址 铁门赛克软件开发有限公司 网络安全将来研究方向 安装服务器管理工具失败 网络安全法有哪些制度 软件开发与造价哪个好 网络安全法 等级保护 培训 软件开发 毕设 网络安全行为特征包括 山东海特物联网络技术 苏州线上内训软件开发 将ip地址加入数据库 河南有什么服务器租用云空间 三年级手抄报网络安全非常简单 黄陂区方便网络安全维护管理系统 软件开发是属于火类的行业吗 应用软件开发pdf 学计算机网络技术要买电脑吗 我的世界服务器公司 济南蓝翼网络技术公司 数据库操作能力 文档如何插入数据库 如何查找网页版的数据库类型 广东东塔网络安全学院工资高 中国软件开发技术现状 怎么用服务器搭建机场
0