面试题

HDFS的优缺点

优点:

  1. 高容错性(硬件故障是常态):数据自动保存多个副本,副本丢失后,会自动恢复
  2. 适合大数据集:GB、TB、甚至PB级数据、千万规模以上的文件数量,1000以上节点规模。
  3. 数据访问: 一次性写入,多次读取;保证数据一致性,安全性
  4. 构建成本低:可以构建在廉价机器上。
  5. 多种软硬件平台中的可移植性
  6. 高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
  7. 高可靠性:Hadoop的存储和处理数据的能力值得人们信赖.

缺点:

  1. 不适合做低延迟数据访问:
    HDFS的设计目标有一点是:处理大型数据集,高吞吐率。这一点势必要以高延迟为代价的。因此HDFS不适合处
    理用户要求的毫秒级的低延迟应用请求
  2. 不适合小文件存取:
    一个是大量小文件需要消耗大量的寻址时间,违反了HDFS的尽可能减少寻址时间比例的设计目标。第二个是内
    存有限,一个block元数据大内存消耗大约为150个字节,存储一亿个block和存储一亿个小文件都会消耗20G内存。
    因此相对来说,大文件更省内存。
  3. 不适合并发写入,文件随机修改:
    HDFS上的文件只能拥有一个写者,仅仅支持append操作。不支持多用户对同一个文件的写操作,以及在文件任
    意位置进行修改

HDFS的体系 结构

NameNode

  • namenode进程只有一个(HA除外)
  • 管理HDFS的命名空间,并以fsimage和edit进行持久化保存。
  • 在内存中维护数据块的映射信息
  • 实施副本冗余策略
  • 处理客户端的访问请求

DataNode

  • 存储真正的数据(块进行存储)
  • 执行数据块的读写操作
  • 心跳机制(3秒)

SecondaryNameNode

  • 帮助NameNode合并fsimage和edits文件
  • 不能实时同步,不能作为热备份节点

HDFS的Client接口

  • HDFS实际上提供了各种语言操作HDFS的接口。
  • 与NameNode进行交互,获取文件的存储位置(读/写两种操作)
  • 与DataNode进行交互,写入数据,或者读取数据
  • 上传时分块进行存储,读取时分片进行读取

HDFS的工作机制

hadoop框架kafka hadoop框架的缺陷不包括_大数据

系统离开安全模式,需要满足哪些条件?

当namenode收到来自datanode的状态报告后,namenode根据配置确定

  1. 可用的block占总数的比例
  2. 可用的数据节点数量符合要求之后,离开安全模式。
  3. 1、2两个条件满足后维持的时间达到配置的要求。
  4. 注意: 如果有必要,也可以通过命令强制离开安全模式。

SecondayNamenode的工作机制(检查点机制)

hadoop框架kafka hadoop框架的缺陷不包括_HDFS_02

  1. SecondaryNamenode请求Namenode停止使用正在编辑的editlog文件,Namenode会创建新的editlog文件,同时
    更新seed_txid文件。
  2. SecondaryNamenode通过HTTP协议获取Namenode上的fsimage和editlog文件。
  3. SecondaryNamenode将fsimage读进内存当中,并逐步分析editlog文件里的数据,进行合并操作,然后写入新
    文件fsimage_x.ckpt文件中。
  4. SecondaryNamenode将新文件fsimage_x.ckpt通过HTTP协议发送回Namenode。
    并操作,然后写入新
    文件fsimage_x.ckpt文件中。
  5. SecondaryNamenode将新文件fsimage_x.ckpt通过HTTP协议发送回Namenode。
  6. Namenode再进行更名操作。