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

137 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第8天,学习了【HDFS 原理与应用】的内容,重点是 HDFS的基本概念:架构及其设计,之后又了解了HDFS的应用场景。

HDFS基本介绍

应用层 hadoop MapReduce
调度层 yarn k8s
存储层 hdfs

文件系统

linux:xfs,ext(X),Btrfs

windows:fat,ntfs,

HDFS架构

client

读写都先向NameNode发送请求,获取DataNode(dn)列表

多个dn被写:pipeline写

namenode 元数据节点

  1. 维护目录树 保证持久化
  2. 维护文件和数据块 文件以数据块为单位多副本存储
  3. 维护DataNode心跳汇报

datanode

  1. 数据存取
  2. 心跳汇报
  3. 副本复制
    pipeline IO

HDFS关键设计

namenode

fsimage:目录存内存,定时写磁盘

数据放置

namenode不会持久化,是靠dn汇报信息动态维护

editlog

修改日志 挂掉后,可通过editlog恢复数据

datanode

namenode时将文件分割成block,以block为单位进行数据存取

写异常处理

1.场景:写入时,client挂了
方案:Lease Recovery
思想:根据副本内容大小,选最小,全局更新

2.场景:写入时,dn挂了
方案:pipeline recovery
思想:重新构建pipeline

读异常

去其他节点读

旁路系统(异步解决会累计恶化的问题)

  1. 负载均衡:datanode容量均衡
  2. Mover:按照策略放副本到合适位置

控制面建设

可观测性设施

埋点、采集、分析

运维

解决机器规模庞大带来的运维困难

应用

ETL

Extract-Transform-Load 抽取、转换、加载。ETL是商业智能BI重要环节。

分布式存储的关键点

  1. 容错
  2. 一致性
  3. 可扩展

思考

1.DataNode的启动扫盘设计存在哪些问题
现有磁盘检测是串行执行,需要将其改为并行执行。 参考www.cnblogs.com/bianqi/p/12…

2.什么是分布式系统的“脑裂”
集群环境中往往有一个核心节点Master。但当两个机房的网络故障时,两机房会分别选出一个Master,两个机房的Master数据同步产生冲突。