大数据Hadoop-HDFS_架构、读写流程

大数据Hadoop-HDFS

基本系统架构

HDFS架构包含三个部分:NameNode,DataNode,Client。

NameNode:NameNode用于存储、生成文件系统的元数据。运行一个实例。

DataNode:DataNode用于存储实际的数据,将自己管理的数据块上报给NameNode ,运行多个实例。

Client:支持业务访问HDFS,从NameNode ,DataNode获取数据返回给业务。多个实例,和业务一起运行。

HDFS数据写入流程

HDFS数据写入流程如下:

(1)业务应用调用HDFS Client提供的API,请求写入文件。

(2)HDFS Client联系NameNode,NameNode在元数据中创建文件节点。

(3)业务应用调用write API写入文件。

(4)HDFS Client收到业务数据后,从NameNode获取到数据块编号、位置信息后,联系DataNode,并将需要写入数据的DataNode建立起流水线。完成后,客户端再通过自有协议写入数据到DataNode1,再由DataNode1复制到DataNode2, DataNode3。

(5)写完的数据,将返回确认信息给HDFS Client。

(6)所有数据确认完成后,业务调用HDFS Client关闭文件。

(7)业务调用close, flush后HDFS Client联系NameNode,确认数据写完成,NameNode持久化元数据。

HDFS数据读取流程

HDFS数据读取流程如下:

(1)业务应用调用HDFS Client提供的API打开文件。

(2)HDFS Client联系NameNode,获取到文件信息(数据块、DataNode位置信息)。

(3)业务应用调用read API读取文件。

(4)HDFS Client根据从NameNode获取到的信息,联系DataNode,获取相应的数据块。(Client采用就近原则读取数据)。

(5)HDFS Client会与多个DataNode通讯获取数据块。

(6)数据读取完成后,业务调用close关闭连接。

相关推荐
Elastic 中国社区官方博客3 小时前
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
大数据·开发语言·javascript·elasticsearch·搜索引擎·全文检索·apache
AAA建材批发王师傅3 小时前
Hive 序列化与反序列化:数据的 “打包“ 与 “拆箱“ 艺术
数据仓库·hive·hadoop
lifallen5 小时前
Flink task、Operator 和 UDF 之间的关系
java·大数据·flink
源码宝7 小时前
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
java·大数据·源码·智慧工地·智能监测·智能施工
XiaoQiong.Zhang7 小时前
简历模板3——数据挖掘工程师5年经验
大数据·人工智能·机器学习·数据挖掘
Edingbrugh.南空8 小时前
Hive SQL执行流程深度解析:从CLI入口到执行计划生成
hive·hadoop·sql
Faith_xzc9 小时前
Apache Doris FE 问题排查与故障分析全景指南
大数据·数据仓库·apache·doris
Edingbrugh.南空9 小时前
Hive 性能优化:从表设计到查询执行的全链路优化
hive·hadoop
潘小磊9 小时前
高频面试之6Hive
大数据·hive·面试·职场和发展
Edingbrugh.南空9 小时前
Hive SQL 执行计划详解:从查看方法到优化应用
hive·hadoop·sql