HDFS的原理与应用| 青训营笔记

117 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第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