HDFS | 青训营笔记

98 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第3天。

今日内容:#HDFS知识

学习重点:了解概念与场景

一、课前预习

1.POSIX

Portable Operating System Interface of UNIX 可移植操作系统接口

2高可用

HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。

3吞吐量

每秒的数据处理量,即单位时间内完成的指令数。吞吐量是在给定时间段内系统完成的交易数量。即系统的吞吐量越大,说明系统在单位时间内完成的用户或系统请求越多。

4. 垂直扩展与水平扩展

垂直扩展:想要增加系统负荷,就意味着要在系统现有的部件上下工夫,即通过提高系统部件的能力来实现。

水平扩展:不是通过增加单个成员的负荷,而是通过增加更多的系统成员。

5.纠删码

(erasure coding,EC)一种数据保护方法,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其它位置。

二、课中笔记

HDFS基本知识

1.HDFS: Hadoop Distributed File System

3层:应用-调度-存储

image.png

win/linux单机文件系统

image.png

EXT4,BTRFS,ZFS…

分布式文件系统

更多机器、存储介质/多副本提高容错/不需高端硬件扩容

HDFS 功能特性:

分布式/容错/高可用/高吞吐/可扩展/廉价

HDFS 交互:

命令行/页面

架构原理

组件:3大件

Client/SDK(操作) – NameNode(数量少) – DataNode(数量多,用户数据)

作用:

写数据块(datanode间,Pipeline写)

image.png

image.png

NameNode:

维护目录树/维护文件和数据块/维护文件块存放节点/分配

DataNode:

数据块存取/汇报(给namenode)/副本复制

关键设计

分布式存储系统概念:

容错/一致性/可扩展/节点/数据放置/单机存储引擎

image.png

NameNode目录树维护

-fsimage

-Editlog

**NameNode数据放置 ** -数据块信息维护(维护节点信息,动态维护位置信息,不会持久化)

-数据放置策略(合理搬迁,存放,副本)

DataNode

-数据块硬盘存放

-启动扫盘

HDFS写异常与处理:

1.Lease Recovery

-写了一半挂掉的问题(副本不一致/租约(修改文件上的锁)无法释放)

-解决方案为Lease Recovery

2.Pipeline Recovery

-文件写入,DataNode侧异常挂掉

-解决方案为Pipeline Recovery

Client读异常与处理:

-读取文件时, DataNode出异常

-解决:节点Failover