HDFS小结|青训营笔记

126 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第5天

HDFS特点

  • 高容错性
  • 高吞吐量
  • 故障的检测和自动快速恢复
  • 流式的数据访问
  • 大数据集
  • 一次写入,多次读写

HDFS架构

主从架构,包括一个NameNode和多个DataNode
NameNode是整个文件系统的管理节点,它负责文件系统名字空间(NameSpace)的管理与维护,同时负责客户端文件操作的控制以及具体存储任务的管理与分配
DataNode提供了真实文件数据的存储服务

image.png

NameNode是管理者,一个Hadoop集群有一个NameNode节点,是一个通常在HDFS实例中的单独机器上运行的软件.它负责管理文件系统名字空间和控制外部客户机的访问。

NameNode决定是否将文件映射到DataNode的复制块上。
实际的I/O事务并没有经过NameNode,只有表示DataNode和块的文件映射的元数据经过NameNode。当外部客户机发送请求要求创建文件时,NameNode会以块标识和该块的第一个副本的DataNode IP地址作为响应。这个NameNode还会通知其他将要接收该块的副本的DataNode。

NameNode的功能

  1. NameNode提供名称查询服务,它是一个Jetty服务器
  2. NameNode保存metadata信息.具体包括:文件owership和permissons;文件包含哪些块,Block保存在哪个DataNode(由DataNode启动时上报)
  3. NameNode的metadata信息在启动后会加载在内存

Hadoop集群中包含一个NameNode和大量的DataNode,DataNode通常以机架的形式组织,机架通过一个交换机将所有系统连接起来
DataNode响应来自HDFS客户机的读写请求,它们还响应来自NameNode的创建、删除和复制块的命令

DataNode的功能

  1. 保存Block,每一个块对应一个元数据信息文件。这个文件主要描述这个块属于哪个文件,第几个块等信息
  2. 启动DataNode线程的时候会向NameNode汇报Block信息
  3. 通过向NameNode发送心跳保持其联系(3秒一次),如果NameNode10分钟没有收到DataNode的心跳,则认为其已经lost,并将其上的Block复制到其他DataNode