DataNode
DataNode存储管理用户的文件块信息
定期向NameNode汇报自身所持有的block信息(通过心跳信息上报)
DataNode无法与NameNode通信,有一段超时时长
写数据流
跟NameNode通信以确认可以写文件并获得接受文件block的DataNode
客户端按顺序将文件逐个block传递给相应DataNode
由接收到block的DataNode向其他DataNode复制block副本(建立pipeline)
HDFS读数据流程
客户端将要读取的文件路径发送给namenode
namenode获取文件的元信息(主要是block的存放位置信息)返回给客户端
客户端根据返回的信息找到相应datanode,逐个获取文件的block
在客户端本地进行数据追加合并从而获得整个文件
元数据存储
Edits文件,日志,追加写,每当有元数据修改时追加
FsImage,镜像文件,备份元数据到磁盘中
因为效率问题,FsImage与Edits会复制到Secondary NameNode中进行定期合并,合并完再将Image发送会NameNode