- hdfs简介
- hdfs组成
- hdfs写流程
Hadoop Distributed File System. 简称 HDFS,是一个分布式文件系统。
大数据基础文件系统,贯穿大数据始末.构成hadoop三大件之一.
hdfs由三部分组成: NameNode(管理元数据),DataNode(存储数据块),SecondaryNameNode(诞生目的是协助NameNode管理元数据.协助fs和edits合并)
- NameNode: 存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
- DataNode:在本地文件系统存储文件块数据,以及块数据的校验和。
- Secondary NameNode:每隔一段时间对NameNode元数据备份。
- 一个数据块需要上传,需要经过HDFSClient
- HDFSClient创建DistributedFileSystem(简称dfs)
- dfs 向 NameNode请求上传文件.
- NameNode检查用户权限,并查看目录是否存在等. 后发出相应通知dfs可以上传文件
- dfs接收到上传文件请求,开始向NameNode请求第一份block文件上传到哪里(上传到哪个DataNode).(hdfs文件系统中,数据文件存储方式以块来区分)
- NameNode根据自己规则找到要上传到DataNode节点.理论(本地节点一个,其他机架节点俩,实际不现实) ,返回dn1,dn2,dn3节点信息 机架选择-----后续分解
- dfs接收到数据节点信息创建FSDataOutputstream(fs).fs请求DataNode1(dn1)上传数据. dn1收到请求后会连接dn2,dn2会连接到dn3. dn1,dn2,dn3之间建立起管道连接.
- 客户端开始向dn1上传第一个block,(先从磁盘读取数据放到一个本地内存缓存),以packet(数据包)为单位,dn1收到数据包packet就会传给dn2,dn2传给dn3
- 第一个block传完之后上传第二个block
packet 64kb
block数据块: 这个是客户端进行切割,将meinv.av文件切割
hadoop3以前切割成64m,hadoop3及其之后切割成128m 主要原因与存储制成工艺有关.
目前固态读取速率很快,对于这种配置,可以将底层的数据块设置成256m,便于存储,减少小文件
对于老式磁盘设置128m. 饱和读取速率
对于机架感知和读数据流程待后续…



