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

105 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第8天,在第八节课中主要了解到了HDFS原理与应用有关的内容。

一、HDFS基本介绍

  • Hadoop Distributed File System

image.png

  • 分布式文件系统:大容量、高可靠、低成本
  • HDFS功能特性:分布式、容错、高可用、高吞吐、可拓展、廉价

二、架构原理

HDFS组件

image.png

Client写流程

image.png

Client读流程

image.png 元数据节点NameNode:

  • 维护目录树
  • 维护文件和数据块的关系
  • 维护文件块存放节点信息
  • 分配新文件存放节点 数据节点DataNode:
  • 数据块存取
  • 心跳汇报
  • 副本复制

三、关键设计

  • 分布式存储系统基本概念:容错能力、一致性模型、可拓展性、节点体系、数据放置、单机存储引擎

NameNode目录树维护

fsimage:

  • 文件系统目录树
  • 完整的存放在内存中
  • 定时存放到硬盘上
  • 修改是只会修改内存中的目录树 Editlog:
  • 目录树的修改日志
  • client更新目录树需要持久化Editlog后才能表示更新成功
  • Editlog可存放在本地文件系统,也可存放在专用系统上
  • NameNode HA方案一个关键点就是如何EditLog共享

NameNode数据放置

  • 数据块信息维护
  • 数据放置策略

DataNode

数据块的硬盘存放:

  • 文件在NameNode已分割成block
  • DataNode以block为单位对数据进行存取 启动扫盘:
  • DataNode需要知道本机存放了哪些数据块
  • 启动时把本机硬盘上的数据块列表加载在内存中

HDFS写异常处理:Pipeline Recovery

  • 情景
  • 异常出现的时机:创建连接时,数据传输时,complete阶段
  • 解决方法:Pipeline Recovery

HDFS写异常处理:Lease Recovery

  • 租约、情景、解决方法

Client读异常处理

情景:读取文件的过程,DataNode侧出现异常挂掉了 解决方法:节点Failover

HDFS写异常处理:Plpeline Recovery

旁路系统

  • Balancer:均衡DataNode的容量
  • Mover:确保副本放置符合策略要求

控制面建设

  • 可观测性设施:指标埋点、数据采集、访问日志、数据分析
  • 运维体系建设:运维操作需要平台化、NameNode操作复杂、DataNode机器规模庞大、组件控制面API

四、应用场景

使用HDFS的公司

image.png

  • 初窥大数据生态
  • ETL:Extract,Transform,Load
  • OLAP查询引擎
  • HBase
  • 机器学习
  • 通用存储应用
  • 对象存储、消息队列、冷数据层、海量日志、备份数据