IT评测·应用市场-qidao123.com技术社区

标题: Hadoop家族之HDFS分布式文件体系 [打印本页]

作者: 知者何南    时间: 2025-4-18 16:03
标题: Hadoop家族之HDFS分布式文件体系
一、HDFS概念

HDFS先容


HDFS设计目标


二、HDFS重要特性


主从架构


分块存储


副本机制


Namenode 元数据管理


Datanode数据存储


名字空间(Namespace)


三、HDFS工作流程与机制

HDFS集群脚色

主脚色:namenode


从脚色:datanode


主脚色辅助脚色: secondarynamenode


Namenode职责


DataNode 职责


HDFS的工作机制


HDFS写数据流程


1、client发起文件上传哀求,通过RPC与NameNode创建通讯,NameNode查抄目标文件是否已存在,父目录是否存在,返回是否可以上传
2、client 哀求第一个block该传输到哪些DataNode服务器上
3、NameNode根据配置文件中指定的备份数量及副本放置策略进行文件分配,返回可用的DataNode的地址,如:A,B,C


4、client 哀求3台DataNode中的一台A上传数据(本质是一个RPC调用,创建pipeline),A收到哀求会继承调用B,然后B调用C,整个pipeline创建完成,后逐级返回client
5、client开始往A上传第一个block(先从磁盘读取数据放到一个当地内存缓存),以packet为单位(默认64k),A收到一个packet就会传给B,B传给C;A每传一个packet就会放入一个应答队列期待应答
6、数据被分割成一个个packet数据包在pipeline上依次传输,在pipeline反方向上,逐个发送ack(命令正确应答),最终由pipeline中的第一个DataNode节点A将pipeline ack发送给client
7、当一个block传输完成之后,client再次哀求NameNode上传第二个block到服务器
HDFS 读数据流程


1、Client 向NameNode发起RPC哀求,来确定哀求文件block所在的位置
2、NameNode会视情况返回文件的部分或全部block列表,对于每个block,NameNode都会返回含有该block副本的DataNode地址
3、这些返回的DN地址,会按照集群拓扑布局得出DataNode与客户端的距离,然后进行排序,按照两个规则:网络拓扑布局中距离Client近的排靠前;心跳机制中超时报告的DN状态为STALE,这样的靠后排
4、Client 选取排序靠前的DataNode来读取block,假如客户端本身就是DataNode,那么将从当地直接获取数据;
5、底层上本质是创建FSDataInputStream,重复的调用父类DataInputStream的read方法,直到这个块上的数据读取完毕;一旦到达块的末尾,DFSInputStream关闭毗连并继承定位下一个块的下一个Datanode
6、当读完列表的block后,若文件读取还没结束,客户端会继承先NameNode获取下一批的block列表;一旦客户端完成读取,它就会调用close()方法
7、读取完一个block都会进行checksum验证,假如读取DataNode时出现错误,客户端会关照NameNode,然后再从下一个拥有该block副本的DataNode继承读。
8、NameNode只是返回Client哀求包含块的DataNode地址,并不是返回哀求块的数据
9、最终读取来全部的block会归并成一个完备的最终文件
四、namenode、datanode之间的通讯



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4