HDFS定义
HDFS(Hadoop Destributed File System)是一个分布式的文件系统,用于存储文件,通过目录树来定位文件
HDFS使用场景
适合一次写入,多次读取的场景,不支持文件的修改
HDFS优缺点
- 高容错性
数据自动保存多个副本。它通过增加副本的形式提高容错性
某一个副本丢失后,它可以自动恢复 - 适合处理大数据
数据规模:能够处理数据规模达到GB、TB、甚至PB级别的数据
文件规模:能够处理百万规模以上的文件数量 - 可构建在廉价机器上,通过多副本机制,提高可靠性
- 不适合低延时数据访问,比如毫秒级的存储数据是做不到的
- 无法高效的对大量小文件进行存储
原因:
存储大量小文件会占用NameNode大量的内存来存储文件目录和块信息
小文件存储的寻址时间会超过读取时间 - 不支持并发写入,文件随机修改,仅支持数据追加append
HDFS组成架构
- NameNode(nn):Master,是一个主管、管理者
- 管理HDFS的名称空间
- 配置副本策略
- 管理数据块(Block)映射信息
- 处理客户端读写请求
- DataNode:Slave,NameNode下达命令,DataNode执行实际的操作
- 存储实际的数据块
- 执行数据块的读写操作
- 文件切分,文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后上传
- 与NameNode交互,获取文件的位置信息
- 与DataNode交互,读取或写入数据
- Client提供一些命令来管理HDFS,比如NameNode格式化
- Client可以通过一些命令来访问HDFS,比如对HDFS增删改查操作
- Secondary NameNode:并非NameNode的热备,当NameNode挂掉时,它并不能马上替换NameNode并提供服务
- 辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode
- 在紧急情况下,可辅助恢复NameNode
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)