前言
#博学谷IT学习技术支持# Hadoop是一些软件的统称,其底层是Java;Hadoop主要包含HDFS分布式文件存储框架、MapReduce分布式计算框架和Yarn分布式资源调度框架。本篇文章主要介绍Hadoop中的HDFS框架。
一、HDFS介绍
HDFS的全称是Hadoop Distributed File System,Hadoop分布式文件系统。该系统是一个由多台计算机组成的集群,主要看重整体集群的工作效率,不注重单台计算机的性能,所以无论多低配置的计算机都可以加入该集群中。 HDFS系统具有文件切片的机制,可以将一个较大的文件进行切片,切分成多个较小的文件存储在该集群中不同的计算机上,取数据时再将所有的小文件进行合并,返回给客户端。
二、架构介绍
从上图可以看出,HDFS系统中的角色有NameNode、SecondaryName和DataNode。这三个角色有各自的分工,从而是HDFS集群可以正常运行。
- NameNode管理整个HDFS集群
- NameNode管理整个集群中的元数据,元数据就是文件在系统中存储的相关信息,不是文件内容
- Client客户端上传和下载数据都需要经过NameNode,从而获取元数据的信息
- NameNode是HDFS集群的核心,该角色一当掉,HDFS集群停止运行
- HDFS集群中的所有真实数据都存在DataNode中
- DataNode每隔一段时间都要向NameNode汇报其存储的Block信息和磁盘信息
- Client进行文件上传和下载,实际是在Client和DataNode间之间进行
- 该角色主要辅助NameNode管理元数据,将NameNode内存中的数据存储到磁盘上
三、HDFS切片机制
Client将文件上传到HDFS系统之前会将文件先进行切片,切片后得到的每一份文件称为Block,默认大小为128M; 假设目前有一份300M的文件,Client会将该文件切成3个Block,Block1的大小为128M,Block2 为128M,Block3就为44M。
总结
HDFS主要用于文件存储,该系统中的NameNode,DataNode和SenondaryNameNode有各自的分工,从而使数据可以正常存储和读取。
|