HDFS的数据流(面试重点)

一:剖析文件写入
在这里插入图片描述
二:网络拓扑-节点距离计算
在HDFS写数据的过程中,NameNode会选择距离最近的DataNode接收数据
节点距离:两个节点到达最近的共同祖先的距离总和

三:机架感知(副本存储节点选择)
HDFS的放置策略是在本地机架上放置一个节点的副本,第二个副本与第一个副本相同机架的随机节点,第三个副本位于不同机架的随机节点。
四:HDFS读取数据流程
串行读数据

五:NameNode的元数据存储在内存中,产生了在磁盘中备份元数据的FsImage。之后引入了Edits文件(只进行追加操作,效率很高),每当元数据有更新或者添加元数据时,修改内存中的元数据并追加到Edits中,长期以后会导致文件数据过大,效率过低。又引进了SecondaryNameNode合并FsImage和Edits。
NameNode工作机制
edits_inprogress_002一开始是空的,在集群运行的过程中,把日志写到这个里面,实现了在集群运行的时候也可以添加日志在这里插入图片描述
六:Fsimage和Edits的概念
Fsimage:HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的所有目录和文件idnode的序列化信息
Edits:存放HDFS文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到Edits当中
seen_txid文件保存的是一个数字,就是最后一个edits_的数字
每次NameNode启动的时候都会将Fsimage文件读入内存,加载Edits里面的更新操作,保证内存中的元数据信息是最新的,同步的,可以看成NameNode启动的时候就讲Fsimage和Edits合并了
oiv查看Fsimage文件
hdfs oiv -p XML -i fsunage镜像文件 -o 转换后文件输出路径

七:NameNode故障处理
方法一:将SecondaryNameNode中数据拷贝到NameNode存储数据的目录

  1. kill -9 NameNode进程
  2. 删除NameNode存储的数据
  3. (rm -rf /opt/module/hadoop/data/tmp/dfs/name/*
  4. 拷贝SecondaryNameNode中数据到原NameNode存储数据目录
  5. scp -r root@hadoop134:/opt/module/hadoop/data/tmp/dfs/namenodesecondary/* ./name/原目录
  6. 重新启动NameNode
  7. sbin/hadoop-daemon start namenode

八:集群安全模式
在安全模式中是只读模式,不能上传任何文件
hadoop dfs -safemode get 获取安全模式状态
hadoop dfs -safemode enter 进入安全模式
hadoop dfs -safemode leave 离开安全模式
hadoop dfs -safemode wait 等待安全模式

九:DataNode工作机制在这里插入图片描述
十:增加服役新节点
1.通过134先克隆hadoop135,修改IP地址和主机名称
2.在hadoop135上启动datanode。这样会在web服务器上发现DataNode上显示会一会是134的一会是135的。所以要先删除data/ logs/
3.启动DataNode就可以了。但是他是不属于这个集群的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值