这是我参与「第四届青训营 」笔记创作活动的第5天 HDFS的原理与应用| 青训营笔记 字节跳动青训营大数据专场: 字节跳动青训营大数据专场:Day 5 一:HDFS的原理与应用
二:课程目录
01. HDFS基本介绍
02.架构原理
03.关键设计(分布式存储系统基本原理)各组件的重要设计
04.应用场景 大数据生态中的应用 通用存储场景
三:
1.HDFS基本介绍
HDFS:hadoop distributed file system
分布式文件系统 client/SDK-namenode-datanode(很多)
Client写流程:client—请求写入新数据块到NameNode-返回副本目标DN(DataNode)列表-写数据块到DataNode(之间交互)-ACK-Flush-向NameNode发送complete请求
2.分布式存储系统基本概念
1:容错能力:能够处理绝大部分异常场景:例如服务器宕机、网络异常、磁盘故障、网络超时
2:一致性模型:为了实现容错,数据必须多副本存放,一致性要解决的问题是如何保障这个多副本的内容都是一致的
3:可拓展性:分布式存储系统需要具备横向扩张scale-out
4:节点体系:常见的事有主从模式、对等模式,不管哪种模式高可用是必须的功能
5:数据防止:系统是由多个节点组成,数据是多个副本存放时,需要考虑数据存放的策略
6:单机存储引擎:在绝大多数存储系统中,数据都是需要落盘持久化,单机引擎需要解决的是根据系统特点,如何高效得存取硬盘数据
3.1:NameNode目录树维护-EditLog
NameNode数据放置:
数据块信息维护:
目录数保存了每个文件的块id
NameNode维护了每个数据块所在的节点信息
NameNode根据DataNode回报的信息动态维护位置信息
NameNode不会持久化数据块位置信息
数据放置策略:新数据存放到那些节点
数据均衡需要怎样合理搬迁数据
3个副本怎么合理放置
3.3:DataNode:数据块的硬盘存放:文件在NameNode已分割成block
DataNode以block为单位对数据进行存取
3.7:控制面建议
可观测性设施:指标埋点 数据采集 访问日志 数据分析
运维体系建设:运维操作需要平台化 NameNode操作复杂 DataNode机器规模庞大 组件控制面API