这是我参与「第四届青训营 」笔记创作活动的第3天
关于 HDFS
HDFS 是 Hadoop Distributed File System 的简称,是 Hadoop 体系中数据存储管理的基础
作为一种分布式文件系统,HDFS 拥有以下特性:
- 分布式:受 GFS 启发,用 Java 实现的开源系统,没有实现完整的 POSIX 文件系统语义
- 容错:自动处理、规避多种错误场景,例如常见的网络错误、系统宕机等
- 高可用:一主多备模式实现元数据高可用,数据多副本实现用户数据的高可用
- 高吞吐:Client 直接从 DataNode 读取用户数据,服务端支持海量 Client 并发读写
- 可扩展:支持联邦集群模式,DataNode 数量可达 10w 级别
- 廉价:只需要通用硬件,不需要定制高端的昂贵硬件设备
架构原理
HDFS 组件
元数据节点 NameNode
- 接收客户端读写,存元数据信息
- 元数据信息包括文件谁所有,权限,用户对文件的操作信息(edit logs),文件被分成几块(Block ID),块存在哪些DataNode
- 一个集群中有且只有一台 NameNode 处于 active状 态
数据节点 DataNode
- 分块存储数据,启动时向 NameNode 报告
- DataNode 之间互为备份
- DataNode 和 NameNode 按照固定时间的心跳保持连续
Client 写流程
Client 读流程
关键设计
- NameNode 目录树维护
- NameNode 数据放置
- DataNode
- 数据块的硬盘存放
- 启动扫盘
- HDFS 写异常处理
- Lease Recovery
- Pipeline Recovery
- Client 读异常处理
- 旁路系统
- 控制面建设
应用场景
-
大数据技术中的应用
- HDFS在大数据技术体系中的角色
- 演示:PySpark读取分析HDFS上的文件
- 数据如何产生
- 数据如何读取
- 数据如何保存
- ETL:数据如何产生、传输
- OLAP:如何高效地读取分析数据
-
存储底座
- HBase
- 机器学习
- 通用场景