大数据技术之Hadoop-HDFS文件系统
一 、HDFS架构概念
1.概念
HDFS,它是一个文件系统,全称:Hadoop Distributed File System,用于存储文件通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
分布式存储系统:一个文件系统,用于存储文件,通过目录树来定位文件。
2 .组成
HDFS采用主从架构,一个HDFS集群是由一个NameNode和多个DataNodes组成的。
1)HDFS集群包括,NameNode和DataNode以及Secondary Namenode。
2)NameNode(nn)负责管理整个文件系统的元数据(描述数据及其环境的数据),以及每一个路径(文件)所对应的数据块信息。
是一个中心服务器,负责管理文件系统的命名空间(namespace)以及客户端对文件的访问。
NameNode执行文件系统的名字空间的操作,比如打开、关闭、重命名文件或目录,它也负责确定数据块到具体DataNode节点的映射。
NameNode统一调度下进行数据块的创建、删除、复制。
3)DataNode(dn) 负责管理用户的文件数据块(记录实际数据),每一个数据块都可以在多个datanode上存储多个副本。
如果默认NameNode为一个,DataNode一般就为三个。
DataNode一般是一个节点一个,负责管理他所在节点上的存储。
一个文件其实被分成一个或多个数据块,这些数据块存储在一组DataNode上。
DataNode负责处理文件系统客户端的读写请求。
在本地文件系统存储文件块数据,以及块数据的校验和。
4)Secondary NameNode(2nn)用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
对NameNode进行冷备份(为了防止出现故障,对数据进行冗余保存,以块为单位进行冗余保存)
热备份:b是a的热备份--如果出现故障,a坏了,b马上就会代替a的工作
冷备份:b是a的冷备份--如果出现故障,a坏了,b不会马上代替a的工作,而是在b上保存a的某些信息,来减少a坏掉之后的损失。
3.HDFS 文件块大小
HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M
HDFS的块比磁盘的块大,其目的是为了最小化寻址开销。如果块设置得足够大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。因而,传输一个由多个块组成的文件的时间取决于磁盘传输速率。
如果寻址时间约为10ms,而传输速率为100MB/s,为了使寻址时间仅占传输时间的1%,我们要将块大小设置约为100MB。默认的块大小128MB。
块的大小:10ms*100*100M/s = 100M