相关原理
HDFS读写文件原理(面试重点)
相关博客:https://blog.csdn.net/qq_17685725/article/details/123243677
节点距离计算
在HDFS写数据的过程中,NameNode 会选择距离上传数据最近的 DataNode 接收数据。
相关博客:https://blog.csdn.net/a1786742005/article/details/104152245
节点感知
相关博客:
提示
查看节点分配的相关代码需要在pom.xml中如下依赖
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-hdfs -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>3.3.6</version>
</dependency>
查看该依赖中的 org.apache.hadoop.hdfs.server.blockmanagement
包下的 BlockPlacementPolicyDefault
文件,该类里的 chooseTargetInOrder
方法
NameNode 和 SecondaryNameNode 工作机制
相关博客:
- https://juejin.cn/post/7139352875611717662
- https://juejin.cn/post/7004722549246394382
- https://juejin.cn/post/6943473152513179679
- https://blog.csdn.net/words8/article/details/118056454
Fsimage文件
使用 cat
命令查看文件会出现乱码,所以需要特定的方式来查看,如下
hdfs oiv -p 需要转换成什么文件类型 -i 需要查看的文件 -o 转换后文件输出路径
创建 /home/mahe666
目录,命令示例如下
hdfs oiv -p XML -i fsimage_0000000000000000398 -o /home/mahe666/fsimage.xml
查看输出出来的 fsimage.xml
文件
里面的每一个 <inode>
都是在 HDFS 中存储的文件信息
往下找,找到 <directory>
标签,里面写了文件夹的父子关系,他们是通过 <inode>
标签里的 <id>
标签绑定的
Edits文件
带有 inprogress
字样的edits文件是正在使用的
和 Fsimage文件 一样,使用 cat
命令查看文件会出现乱码,所以需要特定的方式来查看,如下
hdfs oev -p 需要转换成什么文件类型 -i 需要查看的文件 -o 转换后文件输出路径
确保存在 /home/mahe666
目录,命令示例如下
hdfs oev -p XML -i edits_inprogress_0000000000000000416 -o /home/mahe666/edits.xml
Fsimage文件和Edits文件相关博客
相关博客: