目录
#博学谷IT学习技术支持#
当我们在生活中认知一种新事物的时候,应当从他的最底层或者最基本的地方入手,当然学习也是一样,不论我们学习什么东西,应当从最基本的地方入手,又或者当你迷茫无所入手的时候,不如静下心来,我们从最基本的开始。
首先是HDFS的概述
- HDFS的全称:Hadoop的分布式文件系统
- HDFS适合存储大量的数据,大文件
- HDFS是一个高度容错性的系统,适合部署在廉价的机器上,形成一个完整的存储系统,并且还能对外提供统一的访问路径
特性
- HDFS存储:在存储数据的时候会对文件进行切分,切分成多个block(每个block3个副本)
- HDFS读取:在读取文件的时候由于读取比较慢,时间长,而且还不能保证实时性,所以不适合做网盘。并且只适合存储大文件,因为每存储一个文件NameNode的内存就会记录一条元数据,如果存储的小文件过多会导致对应的元数据过多,会占用大量的NameNode内存。(NameNode会在下面HDFS架构中详细讲解)
- HDFS特点:只支持追加写入不支持随机修改。换言之只要你经济实力雄厚,可以近乎无限扩展。
HDFS的架构
HDFS是主从架构,主节点是NameNode,从节点是DateNode
HDFS的架构
HDFS角色的功能
NameNode
- 它的存在就是保存整个HDFS集群的元数据
- NameNode需要知道每一个DataNode上block的信息
- 客户端在上传或者下载文件的时候,需要从NAMENODE获取元数据信息,NameNode的元数据会自动保存在硬盘上(Secondary NameNode来实现的)
DataNode
- 保存具体的文件数据
- 定时与NameNode之间发送心跳包
- 定时向NameNode汇报Block的信息
- 客户端要下载或者上传文件时,具体的文件操作是和DataNode进行交互
Seconday NameNode
- 主要辅助NameNode进行元数据的管理(把元数据持久化存储和保存到硬盘)可以理解为秘书
Client
- 负责文件的上传和下载
- 上传文件的时候对文件进行切片
HDFS的切片机制
- Block只是一个逻辑单位,假如这个的Block的大小为128MB,那么通过切分后的Block的大小最大为128MB(128=134217728字节)
hdfs-site.xml中的dfs.blocksize参数来进行设置
cd /export/server/hadoop-3.1.4/etc/hadoop/
ls
vim hdfs-site.xml
HDFS的副本机制
- HDFS的每个BLOCK都会有多个副本,默认是3个
通过hdfs-site.xml中的dfs.replication参数来进行设置
小结
学完该阶段,说明你对HDFS分布式文件系统有了一些基础的认知
能够明白HDFS的架构以及一些副本机制