HDFS采用master/slave架构,由一个namenode和一定数目的datanode构成;
namenode:是一个中心服务器,负责管理文件系统的命名空间以及客户端对文件的访问。存储文件的元数据,以及每个文件的块列表和块所在的datanode
1)管理HDFS的名称空间
2) 配置副本策略
3)管理数据块映射信息
4)处理客户端读写请求
datanode:负责管理所在节点的存储(一个文件被分成一个或者多个数据块,这些块就存放在datanode上),处理客户端的读写请求,接受namenode的调度,进行数据块的创建、删除、复制。
1)存储实际的数据块
2) 执行读写操作
client:客户端
1)切分文件,文件上传到hdfs时,client将文件切分成一个个的block(默认是128M)后上传
2) 与namenode 交互,获取datanode的位置信息
3)可以通过一些命令访问和管理HDFS
secondaryNamenode:并非namenode的r热备,当namenode挂掉后,并不能马上起来替代namenode
1)辅助namenode,分担其工作量,比如定期合并EditLog和FsImage。
2) 在紧急情况下可以帮助恢复namenode
其他知识点:
HDFS采用“一次写入多次读写”的文件访问模型,并且严格要求一个时间只能有一个写入者。