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

二、图形化流程

相关推荐
菜鸟小码9 小时前
Hive数据模型、架构、表类型与优化策略
hive·hadoop·架构
IT从业者张某某14 小时前
基于Docker的hadoop容器安装hive并测试
hive·hadoop·docker
IT从业者张某某14 小时前
基于Docker的hadoop容器安装zookeeper
hadoop·docker·zookeeper
菜鸟小码16 小时前
深入理解 Hive 数据模型
数据仓库·hive·hadoop
菜鸟小码16 小时前
Hive环境搭建与配置优化
数据仓库·hive·hadoop
看海的四叔1 天前
【SQL】SQL同环比计算的多种实现方式
数据库·hive·sql·mysql·数据分析·同环比
菜鸟小码2 天前
Hive数据类型全解析:从基础到复杂类型实战指南
数据仓库·hive·hadoop
IT从业者张某某2 天前
Docker部署伪分布Hadoop
hadoop·docker·容器
隐于花海,等待花开2 天前
1.CONCAT / CONCAT_WS 函数深度解析
大数据·hive
菜鸟小码2 天前
深入浅出 Hive 数据类型:从入门到实战
数据仓库·hive·hadoop