1.Client:就是客户端
文件切分。文件上传 HDFS 的时候,Client 将文件切分成一个一个的 Block,然后进行上传
与 NameNode 交互,获取文件的位置信息
与 DataNode 交互,读取或者写入数据
Client 提供一些命令来管理 HDFS,比如 NameNode 格式化
Client 可以通过一些命令来访问 HDFS,比如对 HDFS 增删改查操作
2.NameNode:就是 Master,它是一个主管,管理者
只用来存储元数据信息,元数据信息包括文件的存储时间,大小,权限,以及最重要的块列表,正是因为块列表所以才可以从datanode中获取完整的数据内容
管理 HDFS 的名称空间
配置副本策略
管理数据块 (Block) 映射信息
处理客户端读写请求
3.DataNode:就是 Slave。NameNode 下达命令,DataNode 执行实际的操作
存储实际的数据块
执行数据块的读 / 写操作
4.Secondary NameNode:并非 NameNode 的热备。当 NameNode 挂掉的时候,它并不能马上替换 NameNode 并提供服务
辅助 NameNode,分担其工作量,比如定期合并 Fsimage 和 Edits,并推送给 NameNode
在紧急情况下,可辅助恢复 NameNode