栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hadoop

hadoop

原理部分 hdfs读数据流程

1.hdfs客户端创建一个DistributedFileSystem对象向NameNode请求下载文件file.txt,NameNode通过查找元数据,找到文件所在的DateNode地址。其中数据被切分成两个数据块,存放了3个副本。
2.NameNode返回目标文件的元数据信息,包含n个数据块及其副本所在的节点等信息,比如返回三个节点dn1,dn2,dn3.
3.hdfs客户端通过FsDataInputStream读取第一个数据块的数据,根据机架感知和就近原则会优先选取客户端所在集群节点dn1的数据块,如果客户端不在集群内则在集群内随机选择一个合适的节点读取。如果此时dn1挂掉的话,会去读取跟dn1节点在同一机架上的不同节点dn2。如果dn2挂掉的话,会去读取跟dn1,dn2在不同机架上的dn3节点。因为这样传输的话会大大降低网络流量的消耗。
4.开始传输数据。客户端会和DataNode的节点建立通信去传输数据,第一个数据块传输完后会传输第二个数据块,然后类推。
5.数据传输完毕后会关闭流。
机架感知原理

hdfs写数据流程

1.hdfs客户端创建一个DistributedFileSystem对象,它会向NameNode发送请求询问是否可以上传数据文件。
2.NameNode会检查用户权限以及目录结构,然后告知客户端是否可以上传数据。
3.客户端收到可以上传数据的信号后,它会向NameNode请求上传第一个Bolck块(0-128m)。
4.NameNode会根据副本数3返回3个节点dn1,dn2,dn3,表示用这n个节点存储数据。其中dn1是与客户端同一机器的本地节点,dn2是同一机架的不同节点,dn3是不同机架的节点
5.客户端根据FsDataOutputStream向dn1请求建立block传输通道,dn1向dn2请求建立通道,dn2向dn3请求建立通道
6.dn3向dn2应答成功,dn2向dn1应答成功,dn1向客户端应答成功。
7.开始传输数据,FsDataOutputStream会将每个Block分成一个一个的数据packet,每个数据包为64k,会将数据包依次写往多个节点的内存中,并且在写数据的过程中落盘
8.传输完毕后会关闭流

操作部分 优化部分 经验部分
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/779385.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号