IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hadoop 3.x(生产调优手册)----【HDFS--故障排除】 -> 正文阅读

[大数据]Hadoop 3.x(生产调优手册)----【HDFS--故障排除】

注意:采用三台服务器即可,恢复到 Yarn 开始的服务器快照,

1. NameNode故障处理

在这里插入图片描述

1. 需求

NameNode 进程挂掉了并且存储的数据也丢失了,如何恢复 NameNode

2. 故障模拟

  1. kill -9 NameNode 进程
[fickler@hadoop102 ~]$ kill -9 2043

2043:对应 NameNode 的进程号

  1. 删除 NameNode 存储的数据(/opt/module/hadoop-3.1.3/data/tmp/dfs/name)
[fickler@hadoop102 ~]$ rm -rf /opt/module/hadoop-3.1.3/data/dfs/name/*

3. 问题解决

  1. 拷贝 SecondaryNameNode 中的数据到原 NameNode 存储数据目录
[fickler@hadoop102 dfs]$ scp -r fickler@hadoop104:/opt/module/hadoop-3.1.3/data/dfs/namesecondary/* ./name/
  1. 重新启动 NameNode
[fickler@hadoop102 dfs]$ hdfs --daemon start namenode

如果仅是进程挂掉了,那么直接重启 NameNode 即可,但是如果 NameNode 的数据也丢失了,那么直接重启进行是不能够恢复的,需要按照上述步骤操作,才能恢复 NameNode

2. 集群安全模式&磁盘修复

1. 安全模式

文件系统只接受读数据请求,而不接受删除、修改等变更请求

2. 进入安全模式场景

- NameNode 在加载镜像文件和编辑日志期间处于安全模式
- NameNode 再接收 DataNode 注册时,处于安全模式

在这里插入图片描述

3. 退出安全模式条件

dfs.namenode.safemode.min.datanodes:最小可用 datanode 数量,默认 0
dfs.namenode.safemode.threshold-pct:副本数达到最小要求的 block 占系统总 block 数的百分比,默认 0.999f。(只允许丢一个块)
dfs.namenode.safemode.extension:稳定时间,默认值 30000 毫秒,即 30 秒

4. 基本语法

集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。
在这里插入图片描述

5. 案例1:启动集群进行安全模式

  1. 重新启动集群
[fickler@hadoop102 dfs]$ myhadoop.sh stop
[fickler@hadoop102 dfs]$ myhadoop.sh start
  1. 集群启动后,立即来到集群上删除数据,提示集群处于安全模式
    在这里插入图片描述

6. 案例2:磁盘修复

需求:数据块损坏,进入安全模式,如何处理

  1. 分别进入 hadoop102、hadoop103、hadoop104 的 /opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1846937455-192.168.10.102-1662454118512/current/finalized/subdir0/subdir0 目录,统一删除某 2 个块信息
[fickler@hadoop103 subdir0]$ pwd
/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1846937455-192.168.10.102-1662454118512/current/finalized/subdir0/subdir0
[fickler@hadoop103 subdir0]$ rm -rf blk_1073741825 blk_1073741825_1001.meta 
[fickler@hadoop103 subdir0]$ rm -rf blk_1073741826 blk_1073741826_1002.meta

说明:hadoop103、hadoop104 重复执行以上命令

  1. 重新启动集群
[fickler@hadoop103 subdir0]$ myhadoop.sh stop
[fickler@hadoop103 subdir0]$ myhadoop.sh start
  1. 观察 http://hadoop102:9870/dfshealth.html#tab-overview
    在这里插入图片描述
    说明:安全模式已经打开,块的数量没有达到要求。

  2. 离开安全模式

[fickler@hadoop103 subdir0]$ hdfs dfsadmin -safemode get
Safe mode is ON
[fickler@hadoop103 subdir0]$ hdfs dfsadmin -safemode leave
Safe mode is OFF
  1. 观察 http://hadoop102:9870/dfshealth.html#tab-overview
    在这里插入图片描述
  2. 将元数据删除
    删除对应的元数据即可
  3. 观察 http://hadoop102:9870/dfshealth.html#tab-overview
    在这里插入图片描述

7. 案例3

需求:模拟等待安全模式

  1. 查看当前模式
[fickler@hadoop103 hadoop-3.1.3]$ hdfs dfsadmin -safemode leave
Safe mode is OFF
  1. 先进入安全模式
[fickler@hadoop103 hadoop-3.1.3]$ hdfs dfsadmin -safemode enter
Safe mode is ON
  1. 创建并执行下面的脚本
[fickler@hadoop103 hadoop-3.1.3]$ vim safemode.sh
#!/bin/bash
hdfs dfsadmin -safemode wait
hdfs dfs -put /opt/module/hadoop-3.1.3/README.txt /
[fickler@hadoop103 hadoop-3.1.3]$ chmod 777 safemode.sh
[fickler@hadoop103 hadoop-3.1.3]$ ./safemode.sh
  1. 再打开一个窗口,执行
[fickler@hadoop103 hadoop-3.1.3]$ bin/hdfs dfsadmin -safemode leave
  1. 再观察上一个窗口
Safe mode is OFF
  1. HDFS 集群上已经有上传的数据了
    在这里插入图片描述

3. 慢磁盘监控

“慢磁盘” 指的是谢谢如数据非常慢的一类磁盘。其实慢性磁盘并不少见,当机器运行时间长了,上面跑的任务多了,磁盘的读写性能自然会退化,严重时就会出现写入数据延时的问题。
如何发现慢磁盘?
正常在 HDFS 上创建一个目录,只需要不到 1s 的时间。如果你发现创建目录超过 1 分钟以上,而且这个现象并不是每次都有。只是偶尔慢了一下,就很有可能存在慢磁盘。

1. 通过心跳未联系时间。

一般出现慢磁盘现象,会影响到 NameNode 与 DataNode 之间的心跳。正常情况心跳时间间隔是 3s。超过 3s 说明有异常。
在这里插入图片描述

2. fio命令,测试磁盘的读写性能

  1. 顺序读测试
[fickler@hadoop103 ~]$ sudo yum install -y fio
[fickler@hadoop103 ~]$ sudo fio -filename=/home/fickler/test.log -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r

在这里插入图片描述

  1. 顺序写测试
[fickler@hadoop102 ~]$ sudo fio -filename=/home/fickler/test.log -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_w

在这里插入图片描述

  1. 随机写测试
[fickler@hadoop102 ~]$ sudo fio -filename=/home/fickler/test.log -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_randw

在这里插入图片描述

  1. 混合随机读写
[fickler@hadoop102 ~]$ sudo fio -filename=/home/fickler/test.log -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r_w -ioscheduler=noop

在这里插入图片描述

4. 小文件归档

1. HDFS存储小文件弊端

在这里插入图片描述
每个文件均按块存储,每个块的元数据存储在 NameNode 的内存中,因此 HDFS 存储小文件会非常低效。因为大量的小文件会耗尽 NameNode 中的大部分内存。但注意,存储小文件所需要的磁盘容量和数据块的大小无关。例如,一个 1MB 的文件设置为 128MB 的块存储,实际使用的是 1MB 的磁盘空间,而不是 128MB。

2. 解决存储小文件办法之一

HDFS 存档文件或 HAR 文件,是一个更高效的文件存档工具,它将文件存入 HDFS 块,在减少 NameNode 内存使用的同时,运行对文件进行透明的访问。具体来说,HDFS 存档文件对内还是一个一个独立文件,对 NameNode 而言却是一个整天,减少了 NameNode 的内存。
在这里插入图片描述

3. 案例实操

  1. 需要启动 YARN 进程
[fickler@hadoop103 hadoop-3.1.3]$ start-yarn.sh
  1. 归档文件
    在 /input 目录里面的所有文件归档成一个叫 input.har 的归档文件,并把归档后文件存储到 /output 路径下。
[fickler@hadoop103 hadoop-3.1.3]$ hadoop archive -archiveName input.har -p /input /output
  1. 查看归档
[fickler@hadoop103 hadoop-3.1.3]$ hadoop fs -ls /output/input.har
[fickler@hadoop103 hadoop-3.1.3]$ hadoop fs -ls har:///output/input.har
  1. 解归档文件
[fickler@hadoop103 hadoop-3.1.3]$ hadoop fs -cp har:///output/input.har/* /
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:04:09  更:2022-10-31 12:06:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:51:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码