1. HDFS的设计思路?

  hdfs是分布式的文件系统,用来在廉价的集群上做大数据量的存储。 1.大文件被切割成小文件,使用分而治之的思想让很多服务器对同一个文件进行联合管理 2.每个小文件做冗余备份,并且分散存到不同的服务器,做到高可靠不丢失

2. HDFS的架构?

namenode:集群老大,掌管文件系统目录树,处理客户端读且请求 SecondaryNamenode:持久化元数据,主要给 namenode 分担压力之用 DataNode:存储整个集群所有数据块,处理真正数据读写

3. HDFS的特性?

  - HDFS 中的文件在物理上是分块存储(block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小在 hadoop2.x 版本中是 128M,老版本中是 64M   - HDFS 文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件   - namenode 是 HDFS 集群主节点,负责维护整个 hdfs 文件系统的目录树,以及每一个路径(文件)所对应的 block 块信息(block 的 id,及所在的 datanode 服务器)   - datanode 是 HDFS 集群从节点,每一个 block 都可以在多个 datanode 上存储多个副本(副本数量也可以通过参数设置 dfs.replication,默认是 3)   - HDFS 是设计成适应一次写入,多次读出的场景,且不支持文件的修改

4. HDFS的优缺点?

  • 优点:
    • 可构建在廉价机器上,通过多副本提高可靠性,提供了容错和恢复机制
    • 高容错性,数据自动保存多个副本,副本丢失后,自动恢复
    • 适合批处理,移动计算而非数据,数据位置暴露给计算框架
    • 适合大数据处理,GB、TB、甚至 PB 级数据
    • 流式文件访问,一次性写入,多次读取,保证数据一致性
  • 缺点:
    • 低延迟数据访问,不适合于低延迟高吞吐
    • 小文件存取,不适用与小文件存储,占用空间,寻道时间超过读取时间
    • 不支持并发写入,和随机读取。hdfs同一时间只能有一个写入者,并且不支持多次插入,只能追加