一、Hadoop RPC通信原理
二、熟悉NN和DN的启动过程
2.1 NN启动过程
2.2 安全模式
2.3 数据块管理、放置策略、删除策略
2.3.1 副本管理、放置策略
第一个副本:放置在上传文件的 DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点。
第二个副本:放置在于第一个副本不同的机架的节点上。
第三个副本:与第二个副本相同机架的节点。
更多副本:随机节点
2.3.2 副本删除策略
如果启用了垃圾箱配置,则FS Shell删除的文件不会立即从HDFS中删除。
相反,HDFS将其移动到垃圾目录(每个用户在/user/<username>/.Trash下都有自己的垃圾目录)。 只要文件保留在垃圾箱中,文件就可以快速恢复。
最近删除的文件被移动到当前的垃圾箱目录(/user/<username>/.Trash/Current),并且在可配置的时间间隔内,HDFS创建了检查点(在/ user / <username> / .Trash / <date>下)
对于当前垃圾目录中的文件,并在过期时删除旧检查点。有关垃圾箱的检查点,请参阅FS shell的expunge命令。 它的生命周期在垃圾箱中到期后,NameNode将从HDFS命名空间中删除该文件。
删除文件会导致释放与文件关联的块。请注意,在用户删除文件的时间与HDFS中相应增加的可用空间之间可能存在明显的时间延迟。
Hadoop-机架感知,副本存放策略,网络带宽,数据磁盘故障,数据的完整性,文件删除和取消删除
2.4 DN的启动和心跳上报
三、熟悉HDFS元数据管理
3.1 掌握元数据目录结构
3.2 镜像文件(fsimage)和编辑日志(edits)
1、概念:
fsimage保存了最新的元数据检查点。
fsimage文件是namenode中关于元数据的镜像,一般称为检查点。它是在NameNode启动时对整个文件系统的快照 。
edits保存自最新检查点后的命名空间的变化。
编辑日志是记录对文件或者目录的修改信息啦,比如删除目录,修改文件等信息都会被该文件记录。
编辑日志一般命名规则为:“edits_*”(下面你会看到类似的文件), 它是在NameNode启动后,记录对文件系统的改动序列。
2、工作原理:
从最新检查点后,hadoop将对每个文件的操作都保存在edits中,为避免edits不断增大,secondary namenode就会周期性合并fsimage和edits成新的fsimage,edits再记录新的变化。这种机制有个问题:因edits存放在Namenode中,当Namenode挂掉,edits也会丢失,导致利用secondary namenode恢复Namenode时,会有部分数据丢失。
hadoop学习——namenode的fsimage与editlog详解
3.2 元数据周期合并机制
1. secondarynamenode向namenode发送检查,检查namenode的元数据是否需要合并,每5min发送一次
2. Namenode需要进行元数据合并了
3. Secondarynamenode向namenode发送元数据合并的请求
4. Namenode将正在编辑的日志文件进行回滚,同事生成一个全新的正在编辑的日志文件
5. Secondarynamenode将需要合并的edits文件和fsimage文件拉取到自己的本地
6. Secondarynamenode将edits文件和fsimage文件进行合并,在内存中,根据edits文件的日志修改fsimage文件
7. Secondarynamenode将合并好的fsimage文件发送给namenode,自己本地也会保存一份
8. Namenode将最新的fsimage文件进行重命名覆盖掉原来的fsimage文件
3.3 元数据相关操作,元数据恢复,现场对元数据的加强保护