HDFS原理与应用||青训营
这是我参加青训营的第6天
一、HDFS基本介绍
01.HDFS:
应用层map Reduce Spark
调度层hadoopYARN
存储层HDFS
1.1Windows单机文件系统
1.2Linux单机文件系统
1.3分布式文件系统
大容量:更多的机器,更多的存储介质
高可靠:多个副本提高容错能力
低成本:不需要搞端硬件来扩容
1.4 分布式存储系统
1.5HDFS功能特性
01.分布式:受GFS启发,用Java实现的开源系统,没有实现完整的POSIX文件系统语义
02.容错:自动处理、规避多种错误场景,例如常见的网络错误、机器等
03.高可用:一主多备模式实现元数据高可用,数据多副本实现用户数据的高可用
04.高吞吐:Client直接从DataNode读取用户数据,服务端支持海量client并发读写
05.可扩展:支持联邦集群模式,DataNode数量可达10w级别
06.廉价:只需要通用硬件,不需要定制高端的昂贵硬件设备
1.6演示环境-HDFS节点
Hadoop技术体系
分布式文件系统
分布式文件系统
分布式存储系统
HDFS功能特性
演示环境-HDFS节点
二、架构原理
2.1HDFS组件
在一个实际过程中,namenode很少,但是datanode很多
2.2Client写流程
不是所有的请求列出来,客户端在写的时候,不知道写在哪里,现在NameNode先选择3块给他,然后建立链接然后返回回去,3是横跨3个链接,
2.3Client读流程
先问然后放在不同节点,客户端会选择第一个交互就可以读到数据块的内容,读写都是先问NameNode获取的
NameNode也是中枢节点
2.4元数据节点NameNode
2.5数据节点DataNode
数据块存取:DataNode需要高效实现数据块在硬盘上的存取
心跳汇报:把存放在本机的数据块列表发送给NameNode,以便NameNode能维护数据块的位置信息,同时让NameNode确定该节点处于正常存活状态
副本复制:
1.数据写入时Pipeline IO操作 2.机器故障时补全副本
三、HDFS多场景的应用
3.0分布式存储系统基本概念
```js
1.容错能力:能够处理觉大部分异常场景,例如服务器诺机、网络异常。磁盘故障。网络超时等。
2.一致性模型:为了实现容错,数据必须多副本存放,一致性要解决的问题是如何保证这多个副本的内容都是一致的
3.可扩展性:分布式存储系统需要具备横向扩张scale-out的能力
4.节点体系:常见的有主从模式,对等模式等,不管哪种模式,高可用是必须的功能。
5.数据放置:系统是由多个节点组成,数据是多个副本存放时,需要考虑数据存放的策略。
6.单机存储引擎:在绝大部分存储系统中,数据都是需要落盘持久化,单机引擎需要解决的是根据系统特点,如何高效的存取硬盘数据
```
3.1NameNode 目录树维护
fsimage
文件系统目录树
完整的存放在内存中
定时存放到硬盘上
修改是只修改内存中的目录树