HDFS 产生背景及定义
-
HDFS产生背景
随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS 只是分布式文件管理系统中的一种。
-
HDFS 定义
HDFS(Hadoop Distributed File System),它时一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
HDFS 的使用场景:适合一次写入,多次读出的场景。一个文件经过创建。写入和关闭之后就不需要改变。
HDFS 优缺点
-
优点
-
缺点
HDFS 组成架构
-
NameNode
NameNode(nm):就是 Master,它时一个主管、管理者。
1.管理 HDFS 的名称空间;
2.配置副本策略;
3.管理数据块(Block)映射信息;
4.处理客户端读写请求。
-
DataNode
DataNode:就是 Slave(Workers)。NameNode 下达命令,DataNode 执行实际的操作。
1.存储实际的数据库;
2.执行数据库的读、写操作。
-
SecondaryNameNode
SecondaryNameNode:并非 NameNode 的热备。当 NameNode 挂掉的时候,它并不能马上替换 NameNode 并提供服务。
1.辅助 NameNode,分担其工作量,比如定期合并 Fsimage 和 Edits,并推送给 NameNode;
2.在紧急情况下,可辅助恢复 NameNode。
Client
Client:就是客户端。
1.文件切分。文件上传 HDFS 的时候,Client 将文件切分成一个一个的 Block, 然后进行上传;
2.与 NameNode 交互,获取文件的位置信息;
3.与 DataNode 交互,读取活着写入数据;
4.Client 提供一些命令来管理 HDFS,比如 NameNode 格式化;
5.Clinet 可以通过一些命令来访问 HDFS,比如对 HDFS 增删改查操作;
HDFS 文件快大小(面试重点)
思考:为什么块的大小不能设置太小,也不能设置太大?
1.HDFS 的块设置太小,会增加寻址时间,程序一直在找块的开始位置;
2.如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据时,会非常慢。
总结:HDFS 块的大小设置主要取决于磁盘传输速率。
如果是普通的机械硬盘100M/s左右,建议设置为128M,如果是固态硬盘200M ~ 300M 之间,建议设置为256M。