介绍
HDFS是 master(主)/Slave(从) 结构
HDFS集群由 一个 NameNode 组成(3.x支持多个namenode),是 主服务器,管理多个 DataNodes
NameNode(nn)
NameNode,即 Master。
集群中 NameNode 的存在 简化了系统结构。
存储所有 HDFS 元数据:
- 管理HDFS的命名空间,即:目录、文件
- 配置副本数量
- 数据块(block)管理
- 管理客户端读写请求
- 不处理数据
DataNode(dn)
DataNode,即 Slave,NameNode下达命令,DataNode 执行实际的操作
- 文件被分成一个或多个块,这些块存储在一组 DataNode 中。(即:存储数据)
- 执行数据块的读/写操作
Secondary NameNode
- 辅助NameNode,分担其工作量,如:合并 fsimage 和 edits
- 在紧急情况下,可辅助恢复NameNode
- 不是 NameNode 备份
Client客户端
一般由 JAVA、C开发
- 文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行上传;
- 与 NameNode 交互,获取文件的位置信息;
- 与 DataNode 交互,读取或者写入数据;
- Client提供一些命令来管理HDFS,比如NameNode格式化;
- Client可以通过一些命令来访问HDFS,比如对HDFS增删查改操作;
