HDFS(分布式文件系统)
一:作用
为了解决大量文件存储的问题,hadoop提供了一个组件HDFS。可以将文件分散到不同的服务器上。
二:角色分配
分为namenode跟datenode。
namenode主要作用:存储目录信息,存储元数据信息,管理datenode。
datenode主要作用:存储具体的文件的block块。
三:详细介绍namenode
1,记录元数据信息:文件的路径,文件的块信息,文件块的位置,文件的切块大小,文件的副本数量。
2,响应客户端的请求。
3,平衡datenode上文件块存储负载:datenode在启动时,会向namenode报告自身所持有的block,当客户端要上传文件时,namenode会优先分配空间剩余比较多的datenode给客户端使用。
4,元数据:完整的元数据存储在内存中,查询快,修改快,但是断电数据即丢失。解决办法,将数据序列化到磁盘中。
5,namenode还会对客户端引起元数据变化的操作进行日志记录。
6,SecondaryNameNode会定期从namenode上下载新编号的日志到本地,与fsiage文件进行合并处理,处理完成之后返回给namenode
SecondaryNameNode
1,向namenode请求checkpoint
2,将日志文件下载到自己的磁盘(合并日志文件)
3,SecondaryNameNode会定期从namenode上下载新编号的日志到本地,与fsiage文件进行合并处理,处理完成之后返回给namenode
datenode
1,接收客户端发送过来的block
2,为客户端读取指定的文件块block
3,定期向namenode汇报自身所持有的block
hdfs读写数据流程