HDFS组成框架
设计思想是:分而治之
HDFS是分布式的存储系统,可将文件切分为很多块,散列在分布式系统之上。默认副本有3个,默认每个块的大小是128M(hadoop2.x之后),64M(hadoop1.x)
1)Client
- 块切分
- 与NameNode交互,获得文件位置
- 与DateNode交互,读/写数据
- 提供客户端命令,打开和关闭HDFS
- 提供客户端命令,访问HDFS
2)NameNode
- 管理元数据;
元数据包括块名称,大小,偏移量,权限等
- 管理数据块(block)映射信息;
周期性的从每个DateNode节点接收心跳和块状态报告
- 配置副本策略
复制块,每隔3s接收一次Datenode心跳,如果10分钟之内没有接收到心跳,则认为dn失效,重新复制一份,确保副本数量
- 处理客户端读写请求
3)DataNode
元数据信息(数据块长度,数据块的校验和时间戳)
- 存储实际数据块
- 执行数据块读/写操作
- 上送心跳和块信息
4)SecondaryNameNode(hadoop1.x)
辅助NameNode,分担工作量,帮助将fsimage,editor log合并成fsimage日志
爱人不亲,反其仁;治人不治,反其智;礼人不答,反其敬;行有不得,反求诸己