HDFS 读写流程图解&上传&下载&网络拓扑&Secondary NameNode与 NameNode 之间关系(重点干货)

本文深入探讨HDFS的工作原理,包括上传下载流程、机架感知策略、NN与2NN的持久化策略,以及NameNode故障处理方法。理解HDFS的网络拓扑、机架感知和故障恢复机制对于大数据处理至关重要。

一 HDFS上传图解

在这里插入图片描述

图解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

块2 也是如此流程

二 扩展

网络拓扑

只描述他们关系 ,不管他们是什么。

在这里插入图片描述

机架感知

(副本选择策略)—副本数是3的情况下 ,第一个副本是localrack ,其它可能是不同机架不同节点,不会跨数据中心

机架感知

(副本选择策略)—副本数是3的情况下 ,第一个副本是localrack ,其它可能是不同机架不同节点,不会跨数据中心

为何建立通道串行?

围绕 IO —>因为性能---->并行的话压力集中在客户端,使得性能变差------>只能串行

挂了?

请求建立通道挂了-----集群fail

传输packet 挂了1节点挂了 传输失败----fail

传输packet 挂了 2 节点挂了 --没事 因为数据已经保存在1 节点上—会根据1节点存储 恢复2节点

三 HDFS下载图解

在这里插入图片描述

图解

在这里插入图片描述
在这里插入图片描述

挂了?

如果DN1 挂了会请求DN2-----直至全挂了整个下载过程才失败

四 NN 与2NN 之间关系

持久化策略

NN 是存在内存中------>断电即没 ------?如何持久化呢

Redis 持久化

64G/128G

RDB

定时把整个内存镜像保存一份—保存慢 读快

AOF

操作一次保存一次------安全性高 读慢 保存快

**Hadoop 持久化
AOF

每写一条,保存一次 (edits.log)—一旦重启 就要把edits.log 全读一遍

2NN 与NN 持久化策略

在这里插入图片描述

图解

在这里插入图片描述
在这里插入图片描述
修改一下上面画的有个地方有问题 ,请以下面为主
在这里插入图片描述

五 补充

1 CheckPoint时间设置

(1)通常情况下,SecondaryNameNode每隔一小时执行一次。
[hdfs-default.xml]

dfs.namenode.checkpoint.period
3600 每隔1小时请求一次

(2)一分钟检查一次操作次数,3当操作次数达到1百万时,SecondaryNameNode执行一次。

dfs.namenode.checkpoint.txns
1000000 当数据存储到100w 条请求
操作动作次数

dfs.namenode.checkpoint.check.period 60 **每隔1分钟咨询是否需要checkPoint** 1分钟检查一次操作次数

2 Fsimage和Edits解析

oiv            apply the offline fsimage viewer to an fsimage
oev            apply the offline edits viewer to an edits file

基本语法:hdfs oiv -p 文件类型 -i镜像文件 -o 转换后文件输出路径
在这里插入图片描述
基本语法:hdfs oev -p 文件类型 -i编辑日志 -o 转换后文件输出路径
在这里插入图片描述

edits_inprocess_002   :Record 记录操作过程
fsimage:INodeDirectorySection  描述目录结构
			  INodeSection 记录所有 inode 信息 类型,(所有节点信息 ,格式,文件由哪些块组成)

3 NameNode故障处理

NameNode故障后,可以采用如下两种方法恢复数据。

方法一

将SecondaryNameNode中数据拷贝到NameNode存储数据的目录;

  1. kill -9 NameNode进程
  2. 删除NameNode存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)
    [a@hadoop102 hadoop-2.7.2]$ rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*
  3. 拷贝SecondaryNameNode中数据到原NameNode存储数据目录
    [a@hadoop102 dfs]$ scp -r a@hadoop104:/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary/* ./name/
  4. 重新启动NameNode
    [a@hadoop102 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
方法二:

使用-importCheckpoint选项启动NameNode守护进程,从而将SecondaryNameNode中数据拷贝到NameNode目录中。

  1. 修改hdfs-site.xml中的

    dfs.namenode.checkpoint.period
    120
dfs.namenode.name.dir /opt/module/hadoop-2.7.2/data/tmp/dfs/name 2. kill -9 NameNode进程 3. 删除NameNode存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name) [a@hadoop102 hadoop-2.7.2]$ rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/* 4. 如果SecondaryNameNode不和NameNode在一个主机节点上,需要将SecondaryNameNode存储数据的目录拷贝到NameNode存储数据的平级目录,并删除in_use.lock文件 [a@hadoop102 dfs]$ scp -r atguigu@hadoop104:/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary ./

[a@hadoop102 namesecondary]$ rm -rf in_use.lock

[a@hadoop102 dfs]$ pwd
/opt/module/hadoop-2.7.2/data/tmp/dfs

[a@hadoop102 dfs]$ ls
data name namesecondary
5. 导入检查点数据(等待一会ctrl+c结束掉)
[a@hadoop102 hadoop-2.7.2]$ bin/hdfs namenode -importCheckpoint
6. 启动NameNode
[a@hadoop102 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode

老的hadoop 版本不支持HA (隐患:2NN比NN 少了----edit_inprocess_002)
在这里插入图片描述

4 集群安全模式

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值