文章目录
一、HDFS架构概述
1、HDFS定义
HDFS
(Hadoop Distributed File System) 它是一个文件系统
,用于存储文件,通过目录树来定位文件;其次,它是分布式
的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
HDFS
的使用场景:适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变。
2、HDFS组成
1、NameNode(nn): 就是Master,它是一个主管、管理者。存储文件的元数据,如文件名、文件目录结构、文件属性
(生成时间、副本数、文件权限),以及每个文件的块列表
和块所在的DataNode
等。(告诉在哪存储,储存什么内容)
- 管理HDFS的名称空间 ;
- 配置副本策略;
- 管理数据块(Block)映射信息;
- 处理客户端读写请求。
2、DataNode : 就是slave,NameNode下达命令,DataNode执行实际的操作。
- 存储实际的数据块;
- 执行数据块的读、写操作
3、2nn:每隔一段时间对NameNode元数据备份
3、HDFS文件块大小
HDFS中的文件在物理上是分块存储(Block),块大小可以通过配置参数(dfs.blocksize)来规定,默认大小在Hadoop2.x/3.x版本中是128M,1.x版本是64M
结论:
(1)如果寻址时间约为10ms,即查找到目标block的时间为10ms
(2)寻址时间为传输时间的1%时,则为最佳状态。即:10ms/10%=1000ms
(3)而目前磁盘的传输速率普遍为100MB/s。因此块大小按最小单元设置为128M
(4)HDFS的块设置太小,会增加寻址时间
,程序一直在找块的开始位置;
(5)HDFS的块设置太大
,从磁盘传输数据的时间
会明显大于定位这个块开始位置的时间
。导致程序在处理这块数据时,会非常慢。
4、HDFS的优点
1)高容错性:数据自动保存多个副本。它通过增加副本的形式,提高容错性。如果某个副本丢失以后,如果有机器,它可自动恢复。
2)适合处理大数据:
数据规模:能够处理数据规模达到GB、TB、甚至PB级别的数据;
文件规模:能够处理百万规模以上的文件数量,数量相当之大。
3)可