3. HDFS
的组成与各组成作用(重点)
p45-p47
(1)Client(补充,不考,了解即可)
Client(代表用户)通过与 NameNode 和 DataNode 交互访问 HDFS 中的文件。Client 提供了
一个类似 POSIX 的文件系统接口供用户调用。
(2)NameNode
名称节点,HDFS 的管理者。作用:
1)管理和维护 HDFS 的命名空间(重点)
NameNode 管理 HIDFS 文件系统的命名空间,它维护着文件系统树以及文件
树中所有的文件(或文件夹)的元数据。管理这些信息的文件有两个,分别是命
名空间镜像文件(fsimage)和操作日志文件(edits).fsimage 包含 Hadoop 文件系
统中的所有目录和文件的字列化信息。对于文件,fsimage 包含的信息有修改时
间、 访问时间、块大小和组成一个文件的数据块信息等;而对于目录,fsimage
包含的信息主要有修改时间、访问控制权限等。操作日志(editlog)主要是在
NameNode 已经启动的情况下对 HDFS 进行的各种更新操作进行记录。HDFS 客户
端执行的所有写操作都会被记录到 editlog 中。保存 editlog 的文件则是 edits
文件。
2)管理 DataNode 上的数据块
3)接收客户端的请求
(3)Secondary NameNode(第二名称节点)
作用:定期把 fsimage 和 edits 下载到本地,并加载到内存进行合并,合并后新的 fsimage
传输给 NameNode,这个过程称为检查点。与 NameNode 运行在不同机器,且内存与之一
样。
fsimage 和 edits 合并过程(重点)(图片最好会画,画出来)
1)、SecondaryNamenode 会定期和 NameNode 通信,请求其停止使用 edits 文件,暂
时将新的更新操作写到一个新的文件 edit.new 上,这个操作是瞬间完成。
2)、SecondaryNamenode 通过 HTTP GET 方式从 NameNode 上获取到 fsimage 和 edits
文件,并下载到本地的相应目录下;
3)、SecondaryNamenode 将下载下来的 fsimage 载入到内存,然后一条一条地执行 edits
文件中的各项更新操作,使得内存中的 fsimage 保存最新;这个过程就是 edits 和 fsimage 文
件合并;
4)、SecondaryNamenode 执行完(3)操作之后,会通过 HTTP POST 方式将新的 fsimage
文件发送到 NameNode 节点上
5)、NameNode 将从 SecondaryNamenode 接收到的新的 fsimage 替换旧的 fsimage 文
件,同时将 edit.new 更名为 edits。
(4)DataNode(数据节点)负责数据存储。 作用:
1)保存数据块。每个数据块对应一个元数据信息文件,描述这个数据块属
于哪个文件,是第几个数据块等。
2)启动 DataNode 线程,向 NameNode 定期汇报数据块信息。
3)定期向 NameNode 发送心跳信息保持联系。如果 NameNode 10 分钟没有收
到 DataNode 的心跳信息,则认为其失去联系(Lost),并将其上的数据块复
制到其他 DataNode。
评论0
最新资源