随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。 HDFS 只是分布式文件管理系统中的一种。
HDFS 是Hadoop 的分布式储存解决方案,整体的架构如图所示
1.NameNode( nn) :就是Master, 它
是一个主管、 管理者。
( 1) 管理HDFS的名称空间;
( 2) 配置副本策略;
( 3) 管理数据块( Block) 映射信息;
( 4) 处理客户端读写请求。
2.DataNode:就是Slave。 NameNode
下达命令, DataNode执行实际的操作。
( 1)存储实际的数据块;
( 2) 执行数据块的读/写操作。
3.Client:就是客户端。
( 1) 文件切分。 文件上传HDFS的时候, Client将文件切分成一个一个的Block, 然后进行上传;
( 2) 与NameNode交互, 获取文件的位置信息;
( 3) 与DataNode交互, 读取或者写入数据;
( 4) Client提供一些命令来管理HDFS, 比如NameNode格式化;
( 5) Client可以通过一些命令来访问HDFS,比如对HDFS增删查改操作;
4.Secondary NameNode(2NN):并非NameNode的热备。当NameNode挂掉的时候,它并不
能马上替换NameNode并提供服务。
( 1) 辅助NameNode, 分担其工作量, 比如定期合并Fsimage和Edits, 并推送给NameNode ;
( 2) 在紧急情况下, 可辅助恢复NameNode。