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

196 阅读2分钟

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

前提了解:

flink,Spark 计算引擎

presto 查询引擎

本课程将以Apache HDFS为蓝本,重点介绍HDFS的原理和应用场景,帮助同学加深对大规模数据分布式存储系统的理解。本课程将包括三个方面

  • HDFS基本介绍

  • HDFS架构原理

  • HDFS关键设计

  • HDFS应用场景

HDFS基本介绍

认识Hadoop技术体系,理解“计算+存储”的程序应用逻辑

存储层:HDFS

调度层:YARN

计算框架:MapReduce。值得注意的是另外一个同属于Apache基金会的开源计算框架Apache Spark,当前业界的使用已经远超于MapReduce,尽管它不属于Hadoop项目,但是和Hadoop也有紧密关系。

image.png

文件系统:单机文件系统非常普遍,从Windows NTFS到Linux的Ext4等,分布式文件系统是单机文件的延伸,概念术语是相通的,比如目录、文件、目录树等。

  • 单机文件系统:常见的如Windows NTFS,Linux的Ext4,虽然不同的操作系统和实现,但是本质都是一样的,解决相同的问题。

  • 分布式文件系统:本质上扩展、延伸了单机文件系统,提供了大容量、高可靠、低成本等功能特性;实现上一般也更为复杂。

image.png

HDFS功能特性

image.png

HDFS架构原理

image.png

Namenode:中枢部件,对元数据进行管理 Datanode:最终存储数据的位置

client写数据

image.png

写数据之前需要问NameNode数据写入哪里,我需要写入副本通过pipline写入

client读数据

image.png

元数据结点 NameNode

image.png

数据结点 DataNode

image.png

HDFS关键设计

分布式存储系统基本概念

image.png

NameNode 目录树维护

image.png

如果节点挂了之后,那数据会不会消失?

引入EditLog

image.png

NameNode 数据放置

image.png

数据放置以数据块为单位放置的

image.png

DataNode

数据块的硬盘存放

  • 文件在NameNode已分割成block
  • DataNod以block为单位对数据进行存取

DataNode需要知道本机存储了那些数据块,启动刀盘,把本级硬盘上的数据块列表加载到内存中

HDFS写异常处理:Lease Recovery

image.png

HDFS写异常处理:Pipeline Recovery

image.png

HDFS读异常处理

image.png

旁路系统

不运行时不影响正常读写

image.png

控制面板建设

image.png

应用场景

ETL

image.png

OLAP查询引擎

image.png

HBase

image.png

通用存储应用

image.png

总结

  • 1.学习了HDFS的基本概念
  • 2.学习了HDFS架构以及关键设计
  • 3.学习了HDFS的应用场景

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

网址:juejin.cn/