1 HDFS的定义
HDFS(Hadoop Distributed File System),是一个分布式的目录树文件系统,适合用一次写入多次读出的场景。
2 HDFS的优缺点
2.1 优点
-
高容错性
数据自动保存多个副本,即通过增加副本的形式,提高容错性。
-
适合处理大数据
- 数据规模:可达PB级别的数据
- 文件规模:能够处理百万规模以上的文件数量
-
可构建在廉价机器上,通过多副本机制,提高可靠性
2.2 缺点
- 不适合低延时数据访问
- 无法高效的对大量小文件进行存储
- 不支持并发写入,文件随机修改
- 一个文件只能有一个写,不允许多个线程同时写
- 仅支持数据append(追加),不支持文件的随机修改
3 HDFS的组成
3.1 NameNode(nn)
- 名义上的Master,是一个管理者
- 管理HDFS的名称空间
- 配置副本策略
- 管理数据块(Block)映射信息
- 处理客户端读写请求
3.2 DataNode
- 名义上的Slave,是一个执行者
- 存储实际的数据块
- 执行数据快的读/写操作
3.3 Client
- 客户端
- 文件切分,文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行上传,文件块大小常为128MB
- 与NameNode交互,获取文件的位置信息(元信息)
- 与DataNode交互,读取或者写入数据
- Client提供一些命令来管理HDFS,例如对NameNode的格式化
- Client提供一些命令来访问HDFS,例如对HDFS增删改查操作
3.4 Secondary NameNode
- 它不是NameNode的热备份,两者之间存在差异,当NameNode挂掉的时候,它并不能马上替换NameNode并提供服务
- 辅助NameNode,分担其工作量,如定期合并Fsimage和Edits,并推送给NameNode
- 在紧急情况下,可辅助恢复NameNode