Hive进阶(2)----HDFS写入数据流程(赋图助君理解)

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会合并成一个完整的最终文件。

二、图形化流程

相关推荐
qq_12498707537 小时前
基于Hadoop的信贷风险评估的数据可视化分析与预测系统的设计与实现(源码+论文+部署+安装)
大数据·人工智能·hadoop·分布式·信息可视化·毕业设计·计算机毕业设计
十月南城10 小时前
Hive与离线数仓方法论——分层建模、分区与桶的取舍与查询代价
数据仓库·hive·hadoop
鹏说大数据12 小时前
Spark 和 Hive 的关系与区别
大数据·hive·spark
B站计算机毕业设计超人12 小时前
计算机毕业设计Hadoop+Spark+Hive招聘推荐系统 招聘大数据分析 大数据毕业设计(源码+文档+PPT+ 讲解)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
B站计算机毕业设计超人12 小时前
计算机毕业设计hadoop+spark+hive交通拥堵预测 交通流量预测 智慧城市交通大数据 交通客流量分析(源码+LW文档+PPT+讲解视频)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
AI架构师小马12 小时前
Hive调优手册:从入门到精通的完整指南
数据仓库·hive·hadoop·ai
数据架构师的AI之路12 小时前
深入了解大数据领域Hive的HQL语言特性
大数据·hive·hadoop·ai
Gain_chance13 小时前
33-学习笔记尚硅谷数仓搭建-DWS层交易域用户粒度订单表分析及设计代码
数据库·数据仓库·hive·笔记·学习·datagrip
十月南城15 小时前
Hadoop基础认知——HDFS、YARN、MapReduce在现代体系中的位置与价值
hadoop·hdfs·mapreduce